嘿,我花了大半天的時間試圖弄清楚這一點 - 我覺得我非常接近。基本前提是我有4列數據。它們是複製並粘貼在一起的兩個單獨的名字/姓氏列。現在我想要做的是在姓氏上運行一個匹配,如果他們是平等的,在名字上運行匹配。列範圍是動態的,這就是運行CONCATENATE和VLOOKUP公式的原因,但如果我可以減少涉及的東西,它會很棒。在Excel VBA中運行一個嵌套的If/Match
Here's a sample data table
A B C D E
1 Last First Last2 First2
2 Sharma Abhi Smith Kevin
3 Philip Matt Smith GEORGIA
4 Franc Pete John Bon Jovi
5 Arnold Susan Jack White
6 Mallo Chad Sharma Katie
7 Daigle Steve Sharma Abhi
而且我的想法是,在E2單元格開始就應該返回匹配或不匹配(在這種情況下,只有第2行應返回匹配目前它返回匹配每次 - 這是DEF不對的。我覺得我缺少的幫助小東西?謝謝。
這是我到目前爲止
Sub matchFunction()
On Error Resume Next
Dim BW_Row As Long
Dim BW_Clm As Long
Table1 = Sheet2.Range("F11:F16") ' Range of all appointments last name
Table2 = Sheet2.Range("$G$11:$G$16") ' Range of all appointments first name
Table3 = Sheet2.Range("$H$11:$H$16") ' Range of leads
BW_Row = Sheet2.Range("J11").Row ' Change E column if it's a match
BW_Clm = Sheet2.Range("J11").Column
For Each c In Table1
For Each d In Table2
If Application.Match(c, Table3, 0) <> "" Then
If Application.Match(d, Table3, 0) <> "" Then
Sheet2.Cells(BW_Row, BW_Clm) = "It's a Match!"
Else
Sheet2.Cells(BW_Row, BW_Clm) = "Sorry, it's not a match"
End If
End If
BW_Row = BW_Row + 1
Next d
Next c
MsgBox "Matching Finished"
End Sub
'運行一個CONCATENATE和VLOOKUP公式可行,但如果我可以得到一些較少的參與'然後你是使用完整的殺死VBA將運行較慢,更有可能失敗?如果沒有損壞,請不要修復它。無論如何,我在C列的A列中看不到任何匹配,但你說第2排是匹配?如果第2行與第3行相匹配,爲什麼第6行和第7行不匹配? – user2140261
絕對同意 - 我不太瞭解速度和VBA,因此如果要花費相同的時間來完成Concatenate和Vlookup,那麼可能不值得搞清楚。第2行(A列,B列)與第7列(列C,D)相匹配 – Abhiously