Im Folgenden werden wir ein Programm in Excel VBA suchen, die zufällig ausgewählte Bereiche und Highlights Zellen vergleicht, die einzigartig sind. Wenn Sie nicht vertraut mit Link sind: / vba-Beispiele-Bereiche-Sammlung [Bereiche] noch, empfehlen wir Ihnen, zuerst dieses Beispiel zu lesen.

Situation:

Compare Ranges in Excel VBA

Hinweis: der einzige eindeutige Wert in diesem Beispiel ist die 3, da alle anderen Werte in mindestens einen weiteren Bereich auftreten. So wählen Sie Range ( „B2: B7, D3: E6, D8: E9“), halten Sie die Strg-Taste und jeden Bereich auswählen.

Platzieren Sie eine Befehlstaste auf dem Arbeitsblatt und fügen Sie die folgenden Codezeilen:

  1. Zuerst erklären wir vier Range-Objekte und zwei Variablen vom Typ Integer.

Dim rangeToUse As Range, singleArea As Range, cell1 As Range, cell2 As Range, i As Integer, j As Integer
  1. Wir initialisieren das Range-Objekt rangeToUse mit dem gewählten Bereich.

Set rangeToUse = Selection
  1. die Zeile hinzufügen, die die Hintergrundfarbe aller Zellen auf ‚No Fill‘ ändert. Fügen Sie auch die Linie, die die Grenzen aller Zellen entfernt.

Cells.Interior.ColorIndex = 0

Cells.Borders.LineStyle = xlNone

Informieren Sie den Benutzer 4. wenn er oder sie wählt nur einen Bereich.

If Selection.Areas.Count <= 1 Then

MsgBox "Please select more than one area."

Else

End If

Die nächsten Codelinien (bei 5, 6 und 7) zwischen Else und End If hinzugefügt werden.

  1. Farbe der Zellen der ausgewählten Bereiche.

rangeToUse.Interior.ColorIndex = 38

Border jeden Bereich 6.

For Each singleArea In rangeToUse.Areas

singleArea.BorderAround ColorIndex:=1, Weight:=xlThin

Next singleArea
  1. Der Rest dieses Programm sieht wie folgt aus.

For i = 1 To rangeToUse.Areas.Count

For j = i + 1 To rangeToUse.Areas.Count

For Each cell1 In rangeToUse.Areas(i)

For Each cell2 In rangeToUse.Areas(j)

If cell1.Value = cell2.Value Then

cell1.Interior.ColorIndex = 0

cell2.Interior.ColorIndex = 0

End If

Next cell2

Next cell1

Next j

Next i

Erläuterung: Dies kann ein wenig aussehen überwältigend, aber es ist nicht so schwierig. rangeToUse.Areas.Count gleich 3 ist, so dass die ersten beiden Codelinien zu verringern, um i 1 bis 3 = und für j = i + 1 bis 3. Für i = 1, j = 2 vergleicht Excel VBA alle Werte des ersten Bereichs mit allen Werten des zweiten Bereichs. Für i = 1, j = 3, vergleicht Excel VBA alle Werte des ersten Bereichs mit allen Werten des dritten Bereichs. Für i = 2, j = 3, vergleicht Excel VBA alle Werte des zweiten Bereichs mit allen Werten des dritten Bereichs. Wenn die Werte gleich sind, setzt er die Hintergrundfarbe der beiden Zellen zu ‚Keine Füllung‘, weil sie nicht eindeutig sind.

Ergebnis, wenn Sie auf das Befehlsschaltflächen auf dem Blatt klicken:

Compare Ranges Result