In diesem Artikel erstellen wir ein Benutzerformular, um zwei Bereiche zu vergleichen und nicht übereinstimmende Zellen herauszufinden.

Rohdaten bestehen aus den Daten von Zielmodellen und gewünschten Modellen. Wir möchten diejenigen Datensätze finden, in denen Ziel- und gewünschte Modelle nicht übereinstimmen.

ArrowRawData

Wir haben ein Benutzerformular erstellt, das zwei Bereiche als Eingabe akzeptiert. Diese beiden Bereiche werden verglichen, um nicht übereinstimmende Zellen zu finden.

ArrowUserform

Wenn Sie auf die Schaltfläche „Senden“ klicken, werden zwei Bereiche verglichen und die Ausgabe zurückgegeben. Es wird ein Meldungsfeld angezeigt, in dem die Anzahl der nicht übereinstimmenden Zellen angezeigt wird.

ArrowOutput1

Außerdem werden Daten zu nicht übereinstimmenden Zellen in einer neuen Arbeitsmappe angezeigt.

ArrowOutput2

Code Erklärung

Setze Rng1 = Range (UserForm3.RefEdit1)

Der obige Code wird verwendet, um ein Objekt des Bereichsobjekts zu erstellen, das Bereichswerte aus dem Benutzerformular abruft.

Wenn Rng1 nichts oder Rng2 nichts ist, beenden Sie Sub. Der obige Code wird verwendet, um zu überprüfen, ob beide Bereiche Werte enthalten. Wenn einer der Bereiche leer bleibt, wird der Rest des Codes innerhalb der Prozedur übersprungen.

Mit Rng1 LR1 = .Rows.Count LC1 = .Columns.Count End With Mit dem obigen Code wird die Anzahl der Zeilen und Spalten innerhalb des Bereichs ermittelt.

CellValue1 = Rng1.Cells (r, c) .FormulaLocal Der obige Code wird verwendet, um den Wert in der Zelle der Zeile r und der Spalte c abzurufen.

Wenn CellValue1 <> CellValue2, dann wird der obige Code verwendet, um Werte in den Variablen CellValue1 und CellValue2 zu vergleichen.

Bitte folgen Sie unten für den Code

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

Wenn dir dieser Blog gefallen hat, teile ihn mit deinen Freunden auf Facebook und Facebook.

Wir würden gerne von Ihnen hören, lassen Sie uns wissen, wie wir unsere Arbeit verbessern und für Sie verbessern können. Schreiben Sie uns unter [email protected]