Excel vba比较2个字母数字string

我写了一些代码来比较同一个工作表中的两个string。 代码应检查列b中的string是否出现在列a中的任何位置。 如果string出现在列a中,那么应该返回“是”的值。 如果string不存在,那么应该返回“否”。 string的一个例子是“SR03SN56”SR和SN将始终存在,只有数值会改变。 我写的代码总是返回“是”或“否”,而不pipe该string是否存在于列a中。 我无法解决为什么,虽然我有一种感觉,这是我使用strcmp函数。 任何帮助深表感谢。

Public Sub NameLater() Dim colA As String, colB As String Dim LastRowA As Integer, LastRowB As Integer, i As Integer, j As Integer Dim Comparison As Integer Dim Result As String With ActiveSheet LastRowA = .Cells(.Rows.Count, "A").End(xlUp).Row End With With ActiveSheet LastRowB = .Cells(.Rows.Count, "B").End(xlUp).Row End With For i = 1 To LastRowA For j = 2 To LastRowB colA = Range("A" & i).Value colB = Range("B" & j).Value Comparison = StrComp(colA, colB, 1) If Comparison = 1 Then Result = "Yes" If Comparison = 0 Then Result = "No" If Comparison = -1 Then Result = "No" Sheet2.Range("H" & j).Value = Result Next j Next i End Sub 

我build议你使用vlookup代替VBA:

=IF(IFERROR(VLOOKUP(B1,A:A,1,false),0)=0,"No","Yes")

对于列b的每个单元格,可以find是否存在于列a中。 要容易得多。