Trong bài viết này, chúng tôi sẽ tạo một biểu mẫu người dùng để so sánh hai phạm vi và tìm ra các ô không khớp.

Dữ liệu thô bao gồm dữ liệu của các mô hình mục tiêu và mô hình mong muốn. Chúng tôi muốn tìm những bản ghi mà trong đó mục tiêu và mô hình mong muốn không khớp.

ArrowRawData

Chúng tôi đã tạo một biểu mẫu người dùng chấp nhận hai phạm vi làm đầu vào. Hai phạm vi này được so sánh để tìm các ô không khớp.

ArrowUserform

Khi nhấp vào nút gửi, nó sẽ so sánh hai phạm vi và trả về kết quả đầu ra. Nó sẽ hiển thị một hộp thông báo, hiển thị số lượng các ô không khớp.

ArrowOutput1

Nó cũng sẽ cung cấp dữ liệu về các ô không khớp trong một sổ làm việc mới.

ArrowOutput2

Giải thích mã

Đặt Rng1 = Range (UserForm3.RefEdit1)

Đoạn mã trên được sử dụng để tạo một đối tượng của đối tượng phạm vi, đối tượng này nhận các giá trị phạm vi từ biểu mẫu người dùng.

If Rng1 Is Nothing or Rng2 Is Nothing Then Exit Sub Đoạn mã trên được sử dụng để kiểm tra xem cả hai phạm vi có chứa giá trị hay không. Nếu bất kỳ phạm vi nào bị bỏ trống, thì nó sẽ bỏ qua phần còn lại của mã trong quy trình.

Với Rng1 LR1 = .Rows.Count LC1 = .Columns.Count End With Đoạn mã trên được sử dụng để đếm số lượng hàng và cột trong phạm vi.

CellValue1 = Rng1.Cells (r, c) .FormulaLocal Đoạn mã trên được sử dụng để lấy giá trị trong ô của hàng r và cột c.

If CellValue1 <> CellValue2 Then Đoạn mã trên được sử dụng để so sánh các giá trị trong các biến CellValue1 và CellValue2.

Vui lòng theo dõi bên dưới để biết mã

Option Explicit

Sub CallingUserform()

UserForm3.Show

End Sub

'Insert below code in userform

Option Explicit

Private Sub CommandButton1_Click()

'Declaring variables

Dim Rng1, Rng2 As Range

Dim r, DiffCount As Long, c As Integer

Dim LR1 As Long, LC1 As Integer

Dim CellValue1 As String, CellValue2 As String

Dim NewWB As Workbook

'Getting the two range set for comparing

Set Rng1 = Range(UserForm3.RefEdit1)

Set Rng2 = Range(UserForm3.RefEdit2)

'Unloading the userform

Unload Me

'Disabling screen updates

Application.ScreenUpdating = False

'Checking whether Rng1 and Rng2 contains value

If Rng1 Is Nothing Or Rng2 Is Nothing Then Exit Sub

'Getting count of number of rows and columns in Rng1

With Rng1

LR1 = .Rows.Count

LC1 = .Columns.Count

End With

DiffCount = 0

'Adding new workbook for output

Set NewWB = Workbooks.Add



'Looping through all the columns and rows in the range

For c = 1 To LC1

For r = 1 To LR1



'Getting value from particular cell from both the ranges

CellValue1 = Rng1.Cells(r, c).FormulaLocal

CellValue2 = Rng2.Cells(r, c).FormulaLocal



'Comparing value of cell from both ranges

If CellValue1 <> CellValue2 Then



'Getting count of numbers of cells with different values

DiffCount = DiffCount + 1



'Adding unequal values to new workbook

Cells(r, c).Value = "'" & CellValue1 & " <> " & CellValue2

End If



Next r

Next c

'Display count of unequal cells in both range

MsgBox DiffCount & " cells contain different formulas!", _

vbInformation, "Compare Worksheet Ranges"

'Enabling screen updates

Application.ScreenUpdating = True

Set NewWB = Nothing



End Sub

Nếu bạn thích blog này, hãy chia sẻ nó với bạn bè của bạn trên Facebook và Facebook.

Chúng tôi rất muốn nghe ý kiến ​​từ bạn, hãy cho chúng tôi biết cách chúng tôi có thể cải thiện công việc của mình và làm cho nó tốt hơn cho bạn. Viết thư cho chúng tôi [email protected]