我想检查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
答案 0 :(得分:1)
当您使用Application.WorksheetFunctions
或本例Application.Match()
时,您会看到类似这样的通用消息。很可能你的Application.Match
正在返回一个#N / A错误,VBA称这是一个非常通用的“类型不匹配”。
如果将Application.MAtch()
公式的结果分配给变量然后打印出该变量值,则可以看到此错误(错误2042)。不用担心,因为#N / A是Match()Excel公式的预期结果。