为此,您可以遍历所有行并比较每行的单元格并写入结果。这是代码:
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 设置为第一行,将结束索引设置为 LastRow。我希望它有帮助,迈克