私はデータを持つ2つのリストを持っています。 最初のリストはすべて新しいデータを含むリストで、2番目のリストには古いデータがあります。ここで、Excelで2番目のリストに欠落しているデータがあることを示すメッセージボックスを表示させます。VBAのリストとMsgboxの出力の違いを比較します
他のトピックにある情報を使用して、これらの2つのリストを互いに比較し、このデータを3番目のシートに出力できました。 しかし、実際には3枚目のシートは必要ありませんが、メッセージボックスにこれらの相違点があります。:)このコードを正しく変更する方法は誰でも助けてくれますか?
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
ご協力ありがとうございます。それはほとんど動作しますが、今メッセージが表示されます: "エクストラの:、、、、6,8" これを解決する方法はありますか? – ErikSlui
私の以前の問題がどこにあったのかわかりました。私はいくつかの空白行も持っていました。しかし、空白の行はコードで無視する必要があります – ErikSlui
@ErikSlui編集を参照してください –