【问题标题】:VBA IFERROR to VLOOKUP referencing another sheetVBA IFERROR 到 VLOOKUP 引用另一个工作表
【发布时间】:2018-03-13 15:06:34
【问题描述】:

我正在尝试将此 excel 公式插入 VBA 代码:

=IFERROR(VLOOKUP(E2,'Manual Flags'!$F$2:$L$902,7,0),"")

基本上,我名为“ContractOrganization”的主工作表还需要使用 vlookup 从另一个名为“手动标志”的工作表和单元格(F2 到 L902)中提取/引用数据,并将结果打印到单元格 L2 中

我尝试在下面添加 vba 代码,并提前设置工作表和变量以尝试清理代码,但没有任何效果。

如何使用 iferror 和 vlookup 在 vba 的公式中引用另一个工作表?

Sub AddFormula_ManualFlag()

Dim rng As Range
Dim ws1, ws2 As Worksheet
Dim result As String

Set ws1 = ThisWorkbook.Sheets("Manual Flags")
Set ws2 = ThisWorkbook.Sheets("ContractOrganization")
Set rng = ws2.Range("L2")

On Error Resume Next 'add this because if value is not found, vlookup fails, you get 1004
result = "=IFERROR(VLOOKUP(ws2.Range("E2"),ws1.Range("$F$2:$L$902").Value,7,0),"""")"

rng.Formula = result


End Sub

【问题讨论】:

    标签: vba excel vlookup


    【解决方案1】:

    首先去掉On Error Resume Next,当你把公式放在单元格本身时不需要它,只有在使用Application.WorksheetFunction.Vlookup时才需要。

    任何 vba 都需要从引号中删除并与& 连接:

    result = "=IFERROR(VLOOKUP(" & ws2.Range("E2").Address(0,0) & "," & ws1.Range("$F$2:$L$902").Address(1,1,,1) & ",7,0),"""")"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多