我有兩個包含數據的列表。 第一個列表是包含所有新數據的列表,第二個列表中包含舊數據。現在我想讓Excel展示一個消息框,告訴我第二個列表中缺少哪些數據。比較VBA中的列表和Msgbox中的輸出差異
使用在其他主題中找到的信息,我已經能夠將這兩個列表相互比較,並在第三個工作表中輸出這些數據。 但是我並不真的需要第三張紙,但我想在消息框中填入這些差異。:)任何人都可以幫我解決我如何正確更改此代碼?
Sub Compare()
Dim sh1 As Worksheet, sh2 As Worksheet, sh3 As Worksheet, lr1 As Long, lr2 As Long, rng1 As Range, rng2 As Range, c As Range
Set sh1 = Sheets(1)
Set sh2 = Sheets(2)
Set sh3 = Sheets(3)
lr1 = sh1.Cells(Rows.Count, 1).End(xlUp).Row
lr2 = sh2.Cells(Rows.Count, 1).End(xlUp).Row
Set rng1 = sh1.Range("A2:A" & lr1)
Set rng2 = sh2.Range("A2:A" & lr2)
With sh3 'If header not there, put them in
If .Range("a1") = "" Then
.Range("a1") = "Extras in List 2"
End If
End With
For Each c In rng2
If Application.CountIf(rng1, c.Value) = 0 Then
sh3.Cells(Rows.Count, 1).End(xlUp)(2) = c.Value
End If
Next
End Sub
感謝您的幫助帕特里克!它幾乎可行,但它現在顯示消息: 「Extra's:,,,,6,8」 你有什麼想法如何解決這個問題嗎? – ErikSlui
我發現我之前的問題在哪裏,我也有一些空行,它們也被識別爲「新」。但是空白行需要被代碼忽略 – ErikSlui
@ErikSlui請參閱編輯 –