- ベストアンサー
#N/A を計算式をそのままで”0”表示にしたい
教えてください。 EXCEL VBA のマクロ作成で、 データを他のシートからコピー貼付(形式を選択して貼付の中のリンクの貼付)をします。 すると計算式(VLOOKUP)のある部分は数値がない時、(#N/A)がそのままになってしまいます。"0"表示にしたいのです。 データがある時は、計算結果を表示させるようにする。 10月 11月 12月 1月 2月 3月 Aさん 20 50 3 2 10 7 Bさん 15 30 5 5 12 10 合計 35 80 8 7 22 17 Cさん #N/A #N/A #N/A #N/A 20 #N/A Dさん #N/A #N/A #N/A #N/A #N/A #N/A 合計 #N/A #N/A #N/A #N/A 20 #N/A ・ ・ ・ 計算式は消えないようにしたい。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
式を2度かくとか =IF(ISNA(VLOOKUP(A17,$Q$6:$Y$792,9,FALSE)),0,VLOOKUP(A17,$Q$6:$Y$792,9,FALSE))
その他の回答 (2)
- NYAx2
- ベストアンサー率27% (3/11)
「EXCEL VBA のマクロ作成」と言われているのですが、どうも関数のみを利用されているようですね。 (1)Excelで新規ファイルを開く。 (2)ワークシート(Sheet1)のセルA1に該当csvファイル名を指定しておく。たとえば、C:\Documents and Settings\DBA\デスクトップ\TEL.csv (3)「Alt」キーを押しながら、「F11」キーを押して、VisualBasicエディタを開く。 (4)「Ctrl」キーと「R」キーを同時に押して、プロジェクトエクスプローラを開く。(表示済の場合、カーソルが次の(5)で示す場所に行きます) (5)プロジェクトエクスプローラの中の、次の「Sheet1(Sheet1)」表記部分をクリックする。 VBAProject(Book1)のMicrosoft Excel ObjectsのSheet1(Sheet1) (6)以下の「Sub macro1()」~「End Sub」のマクロ文を右側に開いたウィンドウに貼り付ける。 (10~11行目の「A」と「H」は適当に修正してください) Sub macro1() ' Dim FileName As String '該当csvファイル名をFileNameに設定 FileName = ActiveSheet.Range("A1").Value 'FileNameのファイルをオープン Workbooks.Open FileName:=FileName '列A~Hの書式設定「表示形式/分類(C)」に「文字列」に設定。 Columns("A:H").Select Selection.NumberFormatLocal = "@" End Sub (7)VisualBasicエディタのツールバーにある「デバッグ(D)」→「VBAProjectのコンパイル(L)」をクリックする。 コンパイルエラーが発生しなければ、OK。 (8)青色の右向きの三角記号をクリックすれば、該当csvファイルを開きます。 (9)VisualBasicエディタを閉じる。 (10)該当csvファイルを閉じるときは、従来と同様、csvファイルとして閉じてください。 (11)そして、Excelワークシートファイルは適当な名前を付けて、保存してください。 (12)次回からは、このExcelワークシートファイルを開いて、上記(2)(3)(4)(5)を順に行い、表示したマクロ文上にカーソルを動かしてクリックしたあと、(8)(9)(10)の順に行えば、OK。
お礼
ありがとうございます。 1度試してみます。
- NYAx2
- ベストアンサー率27% (3/11)
IsError関数をご利用になればよいのでは? 現在の計算結果をIsError関数に入力し、Trueだったら、0表示するように、Falseだったら、そのまま表示と、変更されてはどうでしょうか?
補足
=ISERROR(VLOOKUP(A17,$Q$6:$Y$792,9,FALSE)) と記述してみたのですがダメでした・・・。 具体的にどのように記述したらいいのか教えてもらえますか?
補足
ありがとうございました。 できました~。 もうひとつ質問があります。 リンクして貼り付けているのですが リンク元のデータを消してしまうとリンク貼付先のデータが 反映されなくなります。 何か良い方法はありますか? 教えてください。