VBAのエラー回避の方法

Pocket

テキストファイルのデータに一行追加します。
マクロを実行する前に、Sheet3の得意先にデータを登録しておけば問題ないのですが、
追加しないでマクロを実行すると次のエラーが表示されます。

2507145
これは、検索範囲にデータが存在しませんというエラーです。

確かにSheet3の得意先にはW999の得意先は存在しません。

得意先にデータがないたびにコードが途中で止まってしまっては効率が悪いので、エラーを
とりあえず回避させます。

方法は、
On Error Resume Next
Worksheets(“Sheet2”).Cells(a + 1, 3).Value = _
         WorksheetFunction.VLookup(Cells(a, 1).Value, Worksheets(“Sheet3”).Range(“得意先”), 3, False)
On Error GoTo 0
とコードを変更します。
On Error Resume Next

On Error GoTo 0
で挟むことで、挟んだコードでエラーが出ても次に進ませることができます。
特にVlookup関数はデータがないことでエラーが発生しやすいので、VLookup関数をVBAで使うときは
On Error Resume NextとOn Error GoTo 0
をセットで使うことをお勧めします。

2507146
エラーを回避した部分は値が入りせん。
今回のようなケースは、空白がでたデータを得意先に追加して頂き、もう一度マクロを
実行して下さい。そうすれば、得意先の登録も終わるので、次同じ得意先が出てきても大丈夫
ですし、空白のまま会計ソフトにインポートした場合、会計ソフトで入力する手間も省けます。