Sub test()
Dim i As Long
Dim copyWB
Dim pasteWB
Dim search
Set copyWB = Workbooks.Open("2021年度原料単価.xls")
Set pasteWB = ThisWorkbook.Worksheets("Sheet1")
For i = 16 To 29
pasteWB.Range("H" & i) = Application.VLookup(pasteWB.Range("F" & i), copyWB.Worksheets("sheet1").Range("F4:J80"), 5, False)
★If pasteWB.Range("H" & i) = "#N/A" Then
pasteWB.Range("H" & i) = "0"
End If
Next
copyWB.Close
MsgBox "完了"
End Sub
VBA勉強し始めて間もない初心者です。
上記のコードを書いた意図といたしまして、
作成するブック(pasteWB)のF列数行に原料名を入力してマクロを動かします。
すると、対応する列の PasteWB のH列に原料名を完全一致で別ブック(copyWB)から原料名(F列)、金額(J列)が書かれたF4:J80の範囲で検索し、自動入力させるようにしたつもりです。
ここで、完全一致せずエラー表記(#N/A)になったものは、とりあえず"0"と表記させるためにif構文を用いたのですが、デバッグがなんたらと言われ、黄色で表示されてしまいます。
(今は"0"と表記するよう指示していますが、ゆくゆくは一部一致で検索し直し、類似する原料名候補を全部表示させて入力者が選択できるようにしたいです)
色々調べたつもりですが、ここでのif構文のエラーがなぜ出てくるのかが分かりません。
ご助力願います。。
回答1件
あなたの回答
tips
プレビュー