So sánh 2 sheet trong Excel VBA

Làm thế nào để bạn so sánh Bảng tính Excel?

  1. Sử dụng công thức để so sánh hai ô trong Excel hoặc
  2. Mã VBA để so sánh hai trang tính Excel và làm nổi bật sự khác biệt
    • So sánh các trang tính từ cùng một sổ làm việc Excel
    • So sánh các Trang tính từ 2 Tệp Excel khác nhau

Hoặc chỉ cần tải xuống tệp này và kiểm tra các tệp Excel của bạn xem có bất kỳ sự khác biệt nào không

Tải xuống bản dùng thử So sánh hai tệp Excel trước khi mua Đã tải xuống 6.001 lần

Có nhiều trường hợp, chúng ta phải lựa chọn giữa ‘chất lượng’ và ‘nỗ lực’ để hoàn thành nhiệm vụ

So sánh dữ liệu trong hai bảng tính Excel là một trong những nhiệm vụ mà các chuyên gia Phần mềm phải ưu tiên chất lượng ngay cả khi phải trả giá bằng một nỗ lực rất lớn

1. Excel So sánh hai cột và đánh dấu sự khác biệt

Để so sánh 2 Ô trong một Hàng hoặc Cột, chúng ta chỉ cần sử dụng toán tử “=”

Bạn sẽ nhận được TRUE nếu các giá trị được so sánh giống hệt nhau và FALSE nếu có dữ liệu không khớp. Sau đó, sử dụng định dạng có điều kiện để làm nổi bật sự khác biệt trong các bước bên dưới

Ví dụ. So sánh các cột A & B, sau đó làm nổi bật sự khác biệt bằng cách sử dụng định dạng có điều kiện

  1. Nhập công thức vào ô C1. 'A1=B1' hoặc '=IF(A1=B1,TRUE,FALSE)'
  2. Kéo công thức đến các ô khác xuống cột 'C'
  3. Chọn 'Định dạng có điều kiện' trong Tab 'Kiểu' trong menu 'Trang chủ'
  4. Nhấp vào 'Quy tắc mới'
  5. Chọn “Chỉ định dạng các ô có chứa”
  6. Chọn “Giá trị ô” “Bằng” “SAI” và chọn màu

Tương tự, thêm quy tắc mới cho điều kiện ĐÚNG

Bằng cách này, chúng ta có thể so sánh hai cột excel và làm nổi bật sự khác biệt bằng 2 màu

Nếu bạn phải so sánh dữ liệu từ 2 bảng tính khác nhau thì hãy sử dụng tham chiếu ô trong công thức

2. 1 Macro để so sánh hai trang tính Excel và làm nổi bật sự khác biệt

Để so sánh 2 bảng tính Excel, hãy sử dụng mã VBA bên dưới

  1. Mở tệp Excel có bảng tính được so sánh
  2. Tạo sheet thứ 3 để hiển thị Kết quả
  3. Nhấn Alt + F11 để xem VBA Editor cho Excel
  4. Sao chép dán macro đã cho bên dưới
  5. Nhấn F5 để bắt đầu quá trình so sánh và đánh dấu các ô không khớp

Macro này để so sánh các trang tính Excel. Đầu tiên, nó sẽ lặp qua từng hàng và sau đó đọc từng ô để xác minh dữ liệu

Option Explicit
'For More Free Code & Ideas Visit http://OfficeTricks.com
Sub Compare_Two_Excel_Sheets_Highlight_Differences()
    'Define Fields
    Dim iRow As Double, iCol As Double, oRow As Double
    Dim iRow_Max As Double, iCol_Max As Double
    Dim sh1 As Worksheet, sh2 As Worksheet
    Dim shOut As Worksheet
    
    'Sheets to be compared
    Set sh1 = ThisWorkbook.Sheets(1)
    Set sh2 = ThisWorkbook.Sheets(2)
    Set shOut = ThisWorkbook.Sheets(3)
    
    'Max Rows
    iRow_Max = sh1.UsedRange.Rows.Count
    iCol_Max = sh1.UsedRange.Columns.Count
    
    'Read Data From Each Sheets of Both Excel Files & Compare Data
    For iRow = 1 To iRow_Max
    For iCol = 1 To iCol_Max
        sh1.Cells(iRow, iCol).Interior.Color = xlNone
        sh2.Cells(iRow, iCol).Interior.Color = xlNone
        
        'Compare Data From Excel Sheets & Highlight the Mismatches
        If sh1.Cells(iRow, iCol) <> sh2.Cells(iRow, iCol) Then
           sh1.Cells(iRow, iCol).Interior.Color = vbYellow
           sh2.Cells(iRow, iCol).Interior.Color = vbYellow
           
           'Write Differences to Output sheet
           oRow = oRow + 1
           shOut.Cells(oRow, 1) = sh1.Cells(iRow, iCol)
           shOut.Cells(oRow, 2) = sh2.Cells(iRow, iCol)
        End If
    Next iCol
    Next iRow
    
    'Process Completed
    MsgBox "Task Completed - Thanks for Visiting OfficeTricks.Com"
    
End Sub

Sau khi được thực thi, macro này sẽ so sánh hai trang tính Excel và làm nổi bật sự khác biệt

2. 2 Chạy Macro so sánh 2 File Excel theo từng ô

Trong đoạn mã trên, chúng tôi đã so sánh 2 bảng tính Excel từ một tệp. Nhưng với mã này, chúng ta có thể so sánh bất kỳ số lượng trang tính nào từ 2 tệp Excel khác nhau

Tải xuống So sánh hai tệp Excel và báo cáo sự khác biệt Đã tải xuống 6.001 lần

Option Explicit
'For More Free Code & Ideas Visit http://OfficeTricks.com
Sub Compare_Two_Excel_Files_Highlight_Differences()
    'Define Object for Excel Workbooks to Compare
    Dim sh As Integer, ShName As String
    Dim F1_Workbook As Workbook, F2_Workbook As Workbook
    Dim iRow As Double, iCol As Double, iRow_Max As Double, iCol_Max As Double
    Dim File1_Path As String, File2_Path As String, F1_Data As String, F2_Data As String
    
    'Assign the Workbook File Name along with its Path
    File1_Path = ThisWorkbook.Sheets(1).Cells(1, 2)
    File2_Path = ThisWorkbook.Sheets(1).Cells(2, 2)
    iRow_Max = ThisWorkbook.Sheets(1).Cells(3, 2)
    iCol_Max = ThisWorkbook.Sheets(1).Cells(4, 2)

    Set F2_Workbook = Workbooks.Open(File2_Path)
    Set F1_Workbook = Workbooks.Open(File1_Path)
    ThisWorkbook.Sheets(1).Cells(6, 2) = F1_Workbook.Sheets.Count
    
    'With F1_Workbook object, now it is possible to pull any data from it
    'Read Data From Each Sheets of Both Excel Files & Compare Data
    For sh = 1 To F1_Workbook.Sheets.Count
        ShName = F1_Workbook.Sheets(sh).Name
        ThisWorkbook.Sheets(1).Cells(7 + sh, 1) = ShName
        ThisWorkbook.Sheets(1).Cells(7 + sh, 2) = "Identical Sheets"
        ThisWorkbook.Sheets(1).Cells(7 + sh, 2).Interior.Color = vbGreen
        
        For iRow = 1 To iRow_Max
        For iCol = 1 To iCol_Max
            F1_Data = F1_Workbook.Sheets(ShName).Cells(iRow, iCol)
            F2_Data = F2_Workbook.Sheets(ShName).Cells(iRow, iCol)
            
            'Compare Data From Excel Sheets & Highlight the Mismatches
            If F1_Data <> F2_Data Then
                F1_Workbook.Sheets(ShName).Cells(iRow, iCol).Interior.Color = vbYellow
                ThisWorkbook.Sheets(1).Cells(7 + sh, 2) = "Mismatch Found"
                ThisWorkbook.Sheets(1).Cells(7 + sh, 2).Interior.Color = vbYellow
            End If
        Next iCol
        Next iRow
    Next sh
    
    'Process Completed
    ThisWorkbook.Sheets(1).Activate
    MsgBox "Task Completed - Thanks for Visiting OfficeTricks.Com"
    
End Sub

Trước khi sử dụng macro này, hãy gán tên Tệp Excel cho File1_Path và File2_Path. Ngoài ra, chỉ định số lượng hàng và Cột mà bạn muốn so sánh với iRow_Max và iCol_Max

Khi bạn so sánh các bảng tính, bạn cũng phải xem xét Kiểu dữ liệu. Một số Tệp Excel có dấu ngày và giờ được thêm vào bất kỳ Cột nào

Đoạn mã trên không phân biệt chữ hoa chữ thường. Tôi. e. , a = A sẽ trả về TRUE. Vài lần, một khoảng trống có thể được thêm vào dữ liệu sẽ cho kết quả không chính xác. Sửa đổi đoạn mã trên để sử dụng chức năng TRIM và cắt bớt các khoảng trắng không mong muốn trong dữ liệu trước khi so sánh

3. So sánh tệp Excel – So sánh bảng tính Microsoft

Với phiên bản Office 2013 mới nhất, Microsoft đã tích hợp công cụ ‘So sánh bảng tính’. Để gọi điều này, từ menu bắt đầu, bắt đầu nhập 'Bảng tính' và bạn có thể tìm thấy công cụ này

Trong công cụ này, cung cấp các trang tính hoặc tên tệp Excel mà bạn muốn so sánh, sau đó đặt tùy chọn bổ sung cho những gì bạn đang cố gắng so sánh. Phần còn lại sẽ do tool tự lo. Tìm thêm lời giải thích từ chính Microsoft trong liên kết này

Nếu so sánh được thực hiện thủ công, có nhiều khả năng xảy ra nhiều lỗi hoặc dữ liệu không khớp thoát qua mắt người. Chúng tôi gắn thẻ những lời bào chữa đó là “Lỗi thủ công”. Để tránh điều này, hãy tự động hóa quy trình so sánh dữ liệu mặc dù mất nhiều thời gian hơn để hoàn thành

Làm cách nào để so sánh hai trang tính trong VBA?

Đầu tiên, mở một tệp Excel mới. Sau đó, chuyển đến tab Nhà phát triển như chúng tôi đã trình bày ở trên. Chọn Visual Basic. .
Tiếp theo, lưu tệp
Chạy mã bằng cách nhấn F5
Như vậy, bạn sẽ nhận được sự khác biệt trong một sheet của file excel mới
Bằng cách này, bạn có thể so sánh các bảng excel và sao chép sự khác biệt

Có cách nào để so sánh hai trang tính Excel về sự khác biệt không?

So sánh hai phiên bản của sổ làm việc bằng cách sử dụng So sánh bảng tính .
Mở Bảng tính So sánh
Trong ngăn phía dưới bên trái, chọn các tùy chọn bạn muốn đưa vào so sánh sổ làm việc, chẳng hạn như công thức, định dạng ô hoặc macro. .
Trên tab Trang chủ, chọn So sánh tệp

Làm cách nào để so sánh hai cột trong hai trang tính Excel khác nhau bằng macro?

Để sử dụng macro Visual Basic nhằm so sánh dữ liệu trong hai cột, hãy làm theo các bước trong ví dụ sau. .
Bắt đầu Excel
Nhấn ALT+F11 để khởi động trình soạn thảo Visual Basic
Trên menu Chèn, chọn Mô-đun
Nhập mã sau vào bảng mô-đun. .
Nhấn ALT+F11 để quay lại Excel. .
Chọn ô A1 đến A5