VBA-Makro zum Sortieren und Anwenden einer bedingten Formatierung auf einen Zellbereich mit dynamischer Zeilenanzahl

VBA-Makro zum Sortieren und Anwenden einer bedingten Formatierung auf einen Zellbereich mit dynamischer Zeilenanzahl

Ich habe einen Bereich (das Bild unten).

Screenshot von Excel

Bitte beachte, dass:

  • Der Bereich wird von einer anderen Anwendung generiert, sodass sich die Zeilenanzahl ständig ändert, und ist nicht als Excel-Tabelle formatiert.
  • Die Anzahl der Spalten ist jedoch festgelegt.
  • Es gibt immer eine TotalsZeile, die immer die letzte Zeile ist (Zellen dahinter enthalten jedoch Formeln, die zu „“ ausgewertet werden).

Ich benötige Hilfe bei einem VBA-Makro, das den Bereich mit der Kopfzeile als Schlüssel sortiert D(aufsteigend):

[Siehe Link zur sortierten Tabelle unten]

Bitte beachte, dass:

  • Die TotalsZeile (immer die letzte Zeile) sollte ignoriert und nicht sortiert werden.

Nach dieser Sortierung möchte ich, dass dasselbe VBA-Makro eine bedingte Formatierung auf den Bereich anwendet und dabei dieselbe Überschrift Dals Schlüssel verwendet. Die Formatierung wendet einen Rahmen um den Bereich an, der Dgleich ist:

Der Finaltisch ist hier:http://goo.gl/H118Lx

Bitte beachte, dass:

  • Ich möchte keinen Rahmen um eindeutige Werte in Kopfzeilen, Dalso Zeilen, in denen die Anzahl der Zellenwerte nicht größer als 1 ist.

Antwort1

Sie brauchen VBA überhaupt nicht. Sie müssen nur die Flexibilität hinter bedingten Formaten besser verstehen. Aus diesem Grund werde ich die Frage beantworten, auch wenn sie nicht überzeugend ist.

Sie können Dunverändert nach Spalten sortieren. Die Summenzeile wird unten angezeigt, wenn sie die einzige mit einem Leerzeichen ist. Wenden Sie Ihre bedingten Formate wie unten gezeigt auf die gesamte Spalte an.

Format: Ränder links
Bereich: A:A
Formel:=AND($D1<>"",OR($D1=OFFSET($D1,-1,0),$D1=OFFSET($D1,1,0)))

Format: Ränder rechts
Bereich: E:E
Formel:=AND($D1<>"",OR($D1=OFFSET($D1,-1,0),$D1=OFFSET($D1,1,0)))

Format: Ränder oben
Bereich: A:E
Formel:=AND($D1<>"",$D1<>OFFSET($D1,-1,0),$D1=OFFSET($D1,1,0))

Format: Ränder unten
Bereich: A:E
Formel:=AND($D1<>"",$D1=OFFSET($D1,-1,0),$D1<>OFFSET($D1,1,0))


Mit dieser Methode wird das Blatt wie folgt umgewandelt:

Vor

... in dieses Blatt:

Nach

verwandte Informationen