表中的宏循环中的Vlookup

时间:2017-03-28 21:57:48

标签: excel vba excel-vba vlookup

我正在尝试计算VLookup" off sheet" (我不想将公式放入单元格然后复制并粘贴为值 - 而是我想进行计算,然后将结果作为值放入单元格中)

我有一个表,我每个月都会添加数据。我只想计算新行(空白)的VLookupVLookup结果应该放在标题为" Regionals"的表的A列中。表数组是一个名为" Orgs"这是一个名为" PAS"的不同工作表。下面的公式检索我正在寻找的结果,如果我把它直接放在工作表上(在这个例子中"空白"在单元格A174560中)。

  • VLookup出现的主表标题为"表6"
  • 主表位于标题为" TAB"
  • 的工作表上
  • B列(要查找的值)标题为"县代码"在桌子上

=VLOOKUP(B174560,Orgs[[#All],[County]:[Regional]],4,FALSE)

我现在的代码:

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

For Each cell In Range("Table6[Regionals]").SpecialCells(xlCellTypeBlanks)
    cell.Value = [Application.WorksheetFunction.VLookup(cells(CELL.row,Worksheets("TAB").Range("Table6[County Codes]").column)),Worksheets("PAS").Range("Orgs[#All]),[County]:[Regional]"),4,false)]
Next

代码运行时没有错误,但在空白单元格中出现#VALUE错误。

我猜测问题在于在表格中使用表名和列名的语法,或者我尝试在vlookup中使用单元格格式。

1 个答案:

答案 0 :(得分:4)

尝试:

Dim addr, col As Long


With Worksheets("TAB")

   col = .Range("Table6[County Codes]").column

   For Each cell In  .Range("Table6[Regionals]").SpecialCells(xlCellTypeBlanks).Cells

        addr = .Cells(cell.Row, col).Address()

        cell.value = .Evaluate("VLOOKUP(" & addr & _
                         ",Orgs[[#All],[County]:[Regional]],4,FALSE)")
    Next
End With