2つの列をループして、ある列の値が他の列に存在するかどうかを調べました。VBAがExcelで対応する値を見つける
次に、両方の列に存在する値に、値の右側のセルに同じ値が含まれているかどうかを確認します。
希望の結果の写真と現在の結果は、私が達成したいことを説明するはずです。
P.S.私のワークブックの列は2つの異なるシート上にあるので、コードで混乱しないでください。
私は試合の確認を得れば、列を通じて二回ループし試してみましたが、Nathan_Savが指摘したように、この時点で、イムはちょうど....
Sub loopDb()
Set dbsheet1 = ThisWorkbook.Sheets("Sheet1")
Set dbsheet2 = ThisWorkbook.Sheets("Sheet2")
lr1 = dbsheet1.Cells(Rows.Count, 1).End(xlUp).Row
lr2 = dbsheet2.Cells(Rows.Count, 1).End(xlUp).Row
For x = 2 To lr1
act1 = dbsheet1.Cells(x, 1)
For y = 2 To lr2
act2 = dbsheet2.Cells(y, 1)
If Not dbsheet2.Cells(y, 3).Value = "Match" Then
'Only compare if previoulsy not done or resulted in "No match"
If act2 = act1 Then
dbsheet2.Cells(y, 3).Value = "Match"
If dbsheet2.Cells(y, 3).Value = "Match" Then
For i = 2 To lr1
If dbsheet2.Cells(y, 1).Value = dbsheet2.Cells(i, 1).Value Then
dbsheet2.Cells(y, 4).Value = "Match"
Else
dbsheet2.Cells(y, 4).Value = "No match"
End If
Next i
End If
Else
dbsheet2.Cells(y, 3).Value = "No match"
End If
End If
Next y
Next x
End Sub
はなぜ、あなたのロジックで' application.worksheetfunction.match(col1value、col2,0) 'と' AND'を使用していないのに役立ちます願っています –