如何在 Excel VBA 中使用 VLOOKUP 查找匹配单元格
How to use VLOOKUP in Excel VBA to find matching cells
我刚开始使用 Excel VBA 老实说,我也不太擅长使用普通的 Excel。
我有一个 sheet 在 C 列中有唯一代码,我还有另一个 sheet 在 A 列中有唯一代码(第一行除外,因为它们有列标签).
如果 sheet 1 中的这个唯一代码也在 sheet 2 的列中找到,我希望 sheet1 中的 J 列具有该代码值,否则,如果找不到,我希望它有#N/A.
通常在 Excel 中,我会通过选择 J2 并输入以下函数来执行此操作:
=VLOOKUP(C2,Sheet2!A:A,1,False)
然后我只需双击单元格的角即可填充所有行。
如何在 VBA 中执行此操作?我写了这段代码希望它能做点什么:
Worksheets("Sheet1").Activate
ActiveSheet.Range("J:J").Value = Application.VLookup(C2,Worksheets("Sheet2").Range("A:A"),1,False)
但是,这不起作用。对于 J 列中的所有单元格,我只得到 #N/A 。有什么建议吗?
下面的代码会给你你想要的。请注意,您只想将公式放入 sheet1.
列 C
中实际存在值的行中
Option Explicit
Sub InsertVlookup()
Dim LastRow As Long
LastRow = Sheet1.Cells(Rows.Count, 3).End(xlUp).Row
With Sheet1.Range("J2:J" & LastRow)
.FormulaR1C1 = "=VLOOKUP(RC[-7],Sheet2!C[-9],1,FALSE)"
.Value = .Value
End With
End Sub
我刚开始使用 Excel VBA 老实说,我也不太擅长使用普通的 Excel。
我有一个 sheet 在 C 列中有唯一代码,我还有另一个 sheet 在 A 列中有唯一代码(第一行除外,因为它们有列标签).
如果 sheet 1 中的这个唯一代码也在 sheet 2 的列中找到,我希望 sheet1 中的 J 列具有该代码值,否则,如果找不到,我希望它有#N/A.
通常在 Excel 中,我会通过选择 J2 并输入以下函数来执行此操作:
=VLOOKUP(C2,Sheet2!A:A,1,False)
然后我只需双击单元格的角即可填充所有行。
如何在 VBA 中执行此操作?我写了这段代码希望它能做点什么:
Worksheets("Sheet1").Activate
ActiveSheet.Range("J:J").Value = Application.VLookup(C2,Worksheets("Sheet2").Range("A:A"),1,False)
但是,这不起作用。对于 J 列中的所有单元格,我只得到 #N/A 。有什么建议吗?
下面的代码会给你你想要的。请注意,您只想将公式放入 sheet1.
列C
中实际存在值的行中
Option Explicit
Sub InsertVlookup()
Dim LastRow As Long
LastRow = Sheet1.Cells(Rows.Count, 3).End(xlUp).Row
With Sheet1.Range("J2:J" & LastRow)
.FormulaR1C1 = "=VLOOKUP(RC[-7],Sheet2!C[-9],1,FALSE)"
.Value = .Value
End With
End Sub