首页 文章

Vlookup的VBA错误处理

提问于
浏览
0

我为vlookup开发了代码但是我在处理错误时遇到了麻烦 . Sheet1上的列的值正在Sheet2的列中查找 . 结果显示在Sheet3上 .

有2个实例会出现错误:

  • 如果查找值列中的单元格为空

  • 如果查找值不在表数组中

如果查找值的单元格为空,我希望结果显示空白 . 如果查找值不是空白但是表数组中缺少,我希望单元格显示“Missing” . 现在代码设置为总是给空白 .

我到目前为止的代码如下 . 我是一名优秀的公式专家和VBA新手 . 任何帮助,将不胜感激!

On Error Resume Next

Dim Fund_Row As Long
Dim Fund_Clm As Long

Table1 = rangeA  'Column on Sheet1
Table2 = rangeB  'Column on Sheet2

Fund_Row = Sheets("Sheet3").Range("B2").Row
Fund_Clm = Sheets("Sheet3").Range("B2").Column

For Each cl In Table1
Sheets("Sheet3").Cells(Fund_Row, Fund_Clm)=    

Application.WorksheetFunction.VLookup(cl, Table2, 1, False)
Fund_Row = Fund_Row + 1
Next cl

End Sub

1 回答

  • 0

    grab #NA!错误,您可以使用IFNA工作表函数 . 就像那样:

    With Application.WorksheetFunction
        Sheets("Sheet3").Cells(Fund_Row, Fund_Clm) = .IfNa(.VLookup(cl, Table2, 1, False), "Missing")
    End With
    

    你可以双向处理空白 . 简单的是向你正在发布的表中添加空格 . 稍微复杂的是在代码中添加另一个:

    If cl.value = "" then ...
    

相关问题