匹配列的宏正在出错

时间:2014-11-07 21:28:21

标签: excel-vba match vba excel

我想检查sheet1上某列中的单元格是否位于sheet2中的列中(如果是nothing,如果它是not然后超过其最后一行中的值+ 1

我在这一行得到type mismatch If Application.Match(FindValues(i, 1), wsTarget.Range("A2:A" & sLR), 0) = False Then 编辑:这有效 感谢

'\\ IF cell found in match range then do sothing if not dosomthing else
Sub FindReplace_Updated_Blanks()
Dim FindValues As Variant
Dim ReplaceValues As Variant
Dim wsSource As Excel.Worksheet
Dim wsTarget As Excel.Worksheet
Dim sLR As Long
Dim tLR As Long
Dim i As Long

Sheets("Updated_Blanks").Select

Set wsSource = ThisWorkbook.Worksheets("Blanks")
Set wsTarget = ThisWorkbook.Worksheets("Updated_Blanks")

          sLR = wsSource.Range("B" & wsSource.Rows.Count).End(xlUp).Row
          tLR = wsTarget.Range("A" & wsSource.Rows.Count).End(xlUp).Row
   FindValues = wsSource.Range("B2:B" & sLR).Value

    For i = LBound(FindValues) To UBound(FindValues)
            If Not IsError(Application.Match(FindValues(i, 1), wsTarget.Range("A2:A" & tLR), 0)) Then

        Else
            wsTarget.Range("A" & (tLR + 1)) = FindValues(i, 1)

          End If
    Next i
End Sub

1 个答案:

答案 0 :(得分:1)

当您使用Application.WorksheetFunctions或本例Application.Match()时,您会看到类似这样的通用消息。很可能你的Application.Match正在返回一个#N / A错误,VBA称这是一个非常通用的“类型不匹配”。

如果将Application.MAtch()公式的结果分配给变量然后打印出该变量值,则可以看到此错误(错误2042)。不用担心,因为#N / A是Match()Excel公式的预期结果。