首页 > 解决方案 > 将 VLookup 循环中的 #NA 值包含在 If 条件中

问题描述

我有代码,如果这些工作表中其他两列中的值匹配,它使用 Vlookup 函数将 WS_B 中某个列的值插入到 WS_A 中。因此,如果 WS_A.Range("$D$1:$D$700") value x 匹配 WS_B.Range("$D$13:$D$700") 中的值,则来自 WS_B.(P:P) 的值将是粘贴到 WS_A.(T:T)。

但是,如果 Vlookup 的结果是#NA,则从 WS_B 开始的整行,其中 Vlookup 结果是#NA,应该复制到 WS_A 的末尾。

    Dim rngToWS_A         As Range
    Dim rngfromWS_B       As Range
    Dim rngCelToWS_A      As Range
    Dim rngCelfromWS_B    As Range
    Dim TargetWorksheet As Worksheet
    Set TargetWorksheet = ActiveSheet

    Set rngToWS_A = TargetWorksheet.Range("$D$1:$D$700")
    Set rngfromWS_B = ActiveSheet.Range("$D$13:$D$700")

    For Each rngCelToWS_A In rngToWS_A.Cells
        If Trim(rngCelToWS_A) <> "" Then
            For Each rngCelfromWS_B In rngfromWS_B.Cells
                If UCase(Trim(rngCelToWS_A)) = UCase(Trim(rngCelfromWS_B)) Then
                    rngCelToWS_A.Cells(, 20) = Application.WorksheetFunction.VLookup(rngCelToWS_A, ActiveSheet.Range("D13:P700"), 13, False)

                 **'HERE SHOULD BE THE IF CONDITION FOR FOUND #NA VALUES AND COPYING THE ROW TO WS_A**   
                       
                    Exit For
                End If
            Next rngCelfromWS_B
        End If
    Next rngCelToWS_A

不幸的是,我不知道如何包含 if 条件。它应该像这样的混合:“如何 VLOOKUP 在 VBA 中获取 #N/A 值?” 还有这个:“IF 语句包括 VLOOKUP”

标签: excelvbavlookup

解决方案


推荐阅读