【问题标题】:How to use VLOOKUP in Excel VBA to find matching cells如何在 Excel VBA 中使用 VLOOKUP 查找匹配的单元格
【发布时间】:2021-02-19 17:14:55
【问题描述】:

我刚开始使用 Excel VBA,老实说,我也不太擅长使用普通 Excel。

我有一张在 C 列中有唯一代码的工作表,我还有另一张在 A 列中有唯一代码的工作表(除了第一行,因为它们有列标签)。

如果在工作表 2 的列中也找到来自工作表 1 的唯一代码,我希望工作表 1 中的列 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 。有什么建议吗?

【问题讨论】:

  • 您是否尝试过录制宏来查看 Excel 是如何构建代码的?

标签: excel vba vlookup


【解决方案1】:

以下代码将为您提供所需的内容。请注意,您只想将公式放入工作表 1 上 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

【讨论】:

    猜你喜欢
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-31
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    相关资源
    最近更新 更多