【问题标题】:Vlookup in Macro Loop Within a Table表内宏循环中的 Vlookup
【发布时间】:2017-03-28 21:57:48
【问题描述】:

我正在尝试计算VLookup“表外”(我不想将公式放入单元格中,然后复制并粘贴为值 - 而我想进行计算然后将结果放入单元格中作为一个值)

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

  • 出现VLookup 的主表标题为“Table6”
  • 主表位于标题为“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 中使用单元格格式。

【问题讨论】:

    标签: vba excel vlookup


    【解决方案1】:

    试试:

    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
    

    【讨论】:

    • 你能解释一下下面代码的语法吗:" & addr & " 我不确定你为什么不能简单地使用:VLOOKUP(addr,谢谢!
    猜你喜欢
    • 2015-03-24
    • 2017-05-29
    • 1970-01-01
    • 2015-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 2016-10-29
    相关资源
    最近更新 更多