これを行うには、すべての行をループして各行のセルを比較し、結果を書き込みます。コードは次のとおりです。
Public FirstSheetName As String
Public SecondSheetName As String
Public ResultSheetName As String
Public FirstSheetCol As String
Public SecondSheetCol As String
Public ResultSheetCol As String
Public StartIndex As Long
Public EndIndex As Long
Public Sub CompareTwoCols()
Dim i As Long
Dim ii As Long
FirstSheetName = "Sheet1"
FirstSheetCol = "B"
SecondSheetName = "Sheet2"
SecondSheetCol = "B"
ResultSheetName = "Sheet2"
ResultSheetCol = "D"
StartIndex = 1
EndIndex = 65280
'Initialized result with 0's
For i = StartIndex To EndIndex
If Sheets(SecondSheetName).Range(SecondSheetCol & i).Text <> "" Then
Sheets(ResultSheetName).Range(ResultSheetCol & i).Formula = 0
End If
Next i
'Loop throuh all first sheet items skip if blank
For ii = StartIndex To EndIndex
If Sheets(FirstSheetName).Range(FirstSheetCol & ii).Text <> "" Then
'Loop through all second sheet items
For i = StartIndex To EndIndex
'skip if blank or has a value in it
If Sheets(SecondSheetName).Range(SecondSheetCol & i).Text <> "" _
And Sheets(ResultSheetName).Range(ResultSheetCol & i).Text = "0" Then
If Sheets(FirstSheetName).Range(FirstSheetCol & ii).Value = Sheets(SecondSheetName).Range(SecondSheetCol & i) Then
' Match Found
Sheets(ResultSheetName).Range(ResultSheetCol & i).Formula = ThisWorkbook.Sheets(SecondSheetName).Range(SecondSheetCol & i)
End If
End If
Next i
End If
Next ii
End Sub
FirstSheetName、SecondSheetName、および ResultSheetName を該当するシートに設定するだけです。次に、FirstSheetCol、SecondSheetCol、および ResultSheetCol を設定します。最後に、StartIndex を最初の行に、End Index を LastRow に設定します。お役に立てば幸いです、マイク