2017-03-05 5 views
0

別のワークブックの列を比較したいと思います。ブック1の列は範囲C3に配置され、ワー​​クブック2は範囲L3に配置されます。その間のデータは同じ配置になっています。私が比較しなければならない列は予約番号についてです。列を比較した後、すべてのデータが一致すると結果がmsgboxがポップアップして "すべて一致"と表示されますが、そうでなければmsgboxはどのセルがミスマッチであるかに関する情報を与えます。vbaを使用して別のブックの1列を比較する方法

列の例は、通常、私はこのタイプ

を使用範囲のための

BOOKING NO 
631609 
631098 
631099 
629487 
629488 

ある

(Range("C3"), Range("C3").End(xlDown)) 

私はエクセル

でVBAを使用するための非常に初心者のだから誰も私を助けます
+0

すべてのアイテムが一致しても、順序が異なる場合はどうなりますか? –

答えて

0

これは使用できます

Option Explicit 

Sub CompareBooking() 
    Dim rng1 As Range, rng2 As Range 
    Dim iRow As Long 
    Dim diffs As String 

    With Workbooks("Booking1Wb").Worksheets("booking1") '<--| change "Booking1Wb" and "booking1" to, respectively, your actual workbook and its worksheet names where to find booking numbers from C3 downwards 
     Set rng1 = .Range("C3", .Cells(.Rows.count, "C").End(xlUp)) '<--| change "Booking2Wb" and "booking2" to, respectively, your actual workbook and its worksheet names where to find booking numbers from L3 downwards 
    End With 

    With Workbooks("Booking2Wb").Worksheets("booking2") 
     Set rng2 = .Range("L3", .Cells(.Rows.count, "L").End(xlUp)) 
    End With 

    For iRow = 1 To WorksheetFunction.Max(rng1.Rows.count, rng2.Rows.count) 
     If rng1(iRow) <> rng2(iRow) Then diffs = diffs & iRow & vbLf 
    Next 

    If diffs <> "" Then 
     MsgBox "Different booking numbers in rows:" & vbCrLf & vbCrLf & diffs 
    Else 
     MsgBox "All bookings match" 
    End If 
End Sub 
+0

ありがとうございました! – anastasya24

+0

あなたは歓迎です – user3598756

+0

もう一度尋ねてもいいですか? 「条件が一致しても注文は違う」と条件付けするマクロは何ですか?それでも一致としてカウントしたい – anastasya24

関連する問題