使用宏Excel VBA基于密钥从Excel工作表中检索值

时间:2017-04-12 03:08:31

标签: excel vba excel-vba

我正在尝试编写一些宏,根据当前工作表中的值从另一个Excel工作表中检索一些数据。

现在我的当前工作表(Sheet1)具有此属性"地址"我想把它映射到另一张表(Sheet2),它也具有相同的属性"地址"。我想检索另一个单元格值"道路名称"在表2中基于两个表中的相同地址。

我的代码行如下所示:

Sheets("Sheet1").Cells(row, 9).Value = ??

任何人都知道excel VBA中是否有任何内置函数可以执行此操作?

1 个答案:

答案 0 :(得分:1)

根据建议,VLookup可能是最佳解决方案。如果您不想在每次输入新“地址”时在工作表中输入公式,则可以通过以下两种方式之一在VBA中使用VLookup

首先,您可以将公式写入Excel,以便Excel执行VLOOKUP

Sheets("Sheet1").Cells(row, 9).FormulaR1C1 = "=VLOOKUP(RC[-1],Sheet2!C1:C2,2,FALSE)"

其次,您可以使用Application.VLookup函数,以便VBA执行VLookup并将值写入单元格:

Sheets("Sheet1").Cells(row, 9).Value = Application.VLookup(Sheets("Sheet1").Cells(row, 8).Value, _
                                                           Sheets("Sheet2").Range("A:B"),2,False)

注意:在这两种情况下,我都假设“地址”在“Sheet1”的H列中,而“地址”和“道路名称”在“Sheet2”的A:B列中。