【发布时间】:2021-01-11 06:34:21
【问题描述】:
我使用此脚本的目标是使用公式 VLOOKUP 从工作表“BonDeCommande”(A 列)中搜索另一个名为“BonDeReception”(也是 A 列)的工作表中的单元格。
如果在表数组中找到对应的值,则必须在lookup_value(“BonDeCommande”上的A列)的同一行的J列处写入“Oui”。
脚本:
Sub Macro1()
Dim Search As Variant
Dim i As Range
Dim j As Range
LastRow = Worksheets("BC").Range("A" & Rows.Count).End(xlUp).Row
LastR = Worksheets("BR").Range("A" & Rows.Count).End(xlUp).Row
For Each i In Range("A2:A" & LastRow)
For Each j In Range("A2:A" & LastR)
Range("J2").Select
Search = Application.VLookup(BC.Range("A2:A" & "i"), BR.Range("A2:A" & "j"), 1, False)
If Search = "A" & "i" Then
Result = "OUI"
Else
Result = "NON"
Range("J" & "i").Value = Result
End If
Next j
Next i
End Sub
但是,代码不起作用,我收到一条运行时错误 424 消息,突出显示了这一行:
Search = Application.VLookup(BC.Range("A2:A" & "i"), BR.Range("A2:A" & "j"), 1, False)
您能告诉我我在代码上做错了什么吗?或者有没有更简单的方法。
提前致谢!
【问题讨论】:
-
但
i和j也是范围,您希望它们是数字。 -
那么,我是否必须改为将其更改为 Variant?我做到了,我收到了同样的错误信息。也试过 As Integer 但对于每个控制变量必须是 Variant 或 Object
-
你需要决定你是在寻找一个数字还是一个范围,然后在使用上保持一致。
标签: vba if-statement foreach vlookup