首页 文章

VBA IFERROR到VLOOKUP引用另一张表

提问于
浏览
1

我试图将此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

1 回答

  • 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),"""")"
    

相关问题