Schleife durch den Bereich von Zellen, und die Farbe ändern, wenn ein Wert in diesem Bereich mehr als 3 mal
Ich habe eine Spalte mit verschiedenen zahlen. Mein code ist, diese zu Sortieren und prüfen, wie oft die gleiche Zahl erscheint in dieser Spalte. Wenn ein Wert angezeigt wird, mehr als 3 mal sollte es die Farbe alle Zeilen mit diesem Wert liegen, sonst werden die Zeilen gelöscht werden sollen.
Hier ist mein code bisher:
Sub mySub10()
Dim wsTEMP As Worksheet
Dim wsSPECIAL As Worksheet
Dim wsTEMPLrow As Long
Dim i As Integer
Dim x As Integer
Dim rng As Range
Set wsTEMP = ThisWorkbook.Sheets("Temp")
Set wsSPECIAL = ThisWorkbook.Sheets("Spezial")
Application.ScreenUpdating = False
wsTEMPLrow = Worksheets("Temp").Range("A" & Worksheets("Temp").Rows.Count).End(xlUp).Row
With wsTEMP
.Columns("A:Q").Sort Key1:=.Range("L1"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
For i = wsTEMPLrow To 5 Step -1
Set rng = Range("A" & i)
If Cells(i, 12).Value = Cells(i - 1, 12).Value And Cells(i, 12).Value = Cells(i - 2, 12).Value And Cells(i, 12).Value = Cells(i - 3, 12).Value And Cells(i, 12).Value = Cells(i - 4, 12).Value Then
Range("A" & i).EntireRow.Interior.ColorIndex = 6
Range("A" & i - 1).EntireRow.Interior.ColorIndex = 6
End If
Next
For i = wsTEMPLrow To 2 Step -1
Set rng = Range("A" & i)
If rng.Interior.ColorIndex <> 6 Then
rng.EntireRow.Delete
End If
Next
End With
End Sub
- Und was ist das problem mit deinem code?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist ein Weg, es zu tun. Fügen Sie zunächst eine
COUNTIF
Formel in einer anderen Spalte. Dies wird zeigen, wie oft jede Zahl erscheint in Spalte A. Hier ein Beispiel dieses mit einem kleinen Datensatz. Die Formel in Zelle B2 ist=COUNTIF($A$2:$A$15,A2)
und es ist nach unten kopiert werden manuell-oder Sie können dies tun, in VBA:Habe ich eine bedingte Formatierung für Spalte A markieren Sie die Werte, deren Anzahl von 3 oder mehr.
Dann können Sie löschen Sie die Zeilen, wo die Anzahl kleiner als 3:
Ergebnis:
.Formula = "=COUNTIF($L$2:$L$" & Lrow & ", $L2)"
Application.ScreenUpdating = False
an der Spitze Ihres Codes. Gibt es andere tricks, auch. Durchsuchen Sie diese Website und finden Sie Antworten.Die Hervorhebung Teil erreicht werden kann, mit bedingte Formatierung und
ZÄHLENWENN
. Nur die Löschung hat zu erfolgen durch VBA.Ich nehme an, die Spalte mit den zahlen (Spalte
A
.COUNTIF
zählt die Anzahl der vorkommenZählen der Anzahl der vorkommen eines Wertes in Spalte
A
, verwenden Sie einfach diese Formel in der ersten Zeile einer Spalte und füllen Sie die gesamte Spalte mit:COUNTIF
zählt alle Werte im angegebenen Bereich (erstes argument), die die Bedingung erfüllen gegeben wird (zweites argument).A:A
ist die ganze SpalteA
. Die Angabe Zellbezug als Bedingung zuCOUNTIF
bedeutet, dass die vorkommen den gleichen Wert gezählt werden soll.Können Sie jetzt löschen Sie die Spalte mit
COUNTIF
Formel als es war verwendet nur für Demo, wieCOUNTIF
funktioniert. Es werden nicht mehr benötigt.Bedingte Formatierung
Mithilfe der Formel oben geschrieben, ist es möglich, bedingt formatieren von Zellen mit Werten wiederholen mehr als drei mal. Indem Sie die Spalte Referenzen absolut, es ist möglich, formatieren ganzer Zeilen der gleichen Weise wie Ihre erste Zelle. Wählen Sie die gesamte Tabelle, mit der
A1
Zelle aktiviert, und legen Sie die bedingte Formatierung mit der Bedingung, definiert durch die folgende Formel:Ändern 3 um jede andere Konstante, wenn nötig. E. g. über 1 gilt das format auf alle doppelte Werte.
$
bevor ein Teil einer Adresse, ist die absolute Adressierung.$A1
ist die Zelle in SpalteA
in der gleichen Zeile wie derzeit formatierte Zelle (wie die Nummer der Zeile ist immer noch relativ). Für mehr Informationen über Zell-Adressierung finden Sie unter Über Zell-und Auswahl-Referenzen @ - Excel-support-Seite.Anwendung das format von VBA
Mithilfe von VBA können Sie die Formatierung so:
Verwenden
Range("A:A").Select
wählen Sie die gesamte erste Spalte, wenn nicht gemacht die Auswahl sonst. VerwendenSelection.FormatConditions.Delete
nach der Auswahl des Bereichs zu erhalten, entfernen Sie die bedingte Formatierung zuvor eingestellt. Möchten Sie vielleicht ändern Sie das format, zu. Die Letzte Zeile stellt nur die Schrift-Farbe aus, mit der Nummer 6 in der aktuellen palette. Es ist gelb, in der Standard-palette, die kann man auf MS Graph-VB-Referenz-Seite für die ColorIndex-Eigenschaft.Finden Sie unter:
Löschen von nicht formatierten Zeilen
Löschen Sie die Zeilen, die nicht formatiert ist, wird eine Schleife durch die Zellen, get cell Farbe mit
cell.DisplayFormat.Interior.ColorIndex
- und call -cell.EntireRow.Delete
wenn es nicht farbig:Von dem, was ich verstanden habe, du willst, dass ich etwas verändert-code: