2016-03-04 82 views
0

我寫過一些代碼來比較同一工作表中的兩個字符串。代碼應檢查列b中的字符串是否出現在列a中的任何位置。如果字符串出現在列a中,則返回值爲'是'。如果字符串不存在,則應返回「否」。字符串的一個例子是'SR03SN56'SR和SN將始終存在,只有數值會改變。我寫的代碼總是返回'是'或'否',而不管該字符串是否存在於列a中。我不知道爲什麼,雖然我有一種感覺,那就是我使用strcmp函數。任何幫助深表感謝。Excel vba比較2個字母數字字符串

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 

回答

1

我建議你改用VBA的VLOOKUP:

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

列B,如果存在於列,你可以找到的每一個細胞。要容易得多。

+0

我需要將答案返回到一個單獨的工作表中,並且還需要在按下一個按鈕時完成所有工作,因爲此電子表格的用戶在Excel中是新手。 – Rookie2145

+0

您可以在不同的工作表中移動公式,並創建一個vba,而不是在第二個工作表中爲第一個工作表的相同行號插入公式 –