Excel VBA – Bessere Performance ohne SELECT
Wie Sie bereits gelernt haben, basiert Excel VBA auf Objekten wie Zellen, Spalten oder Zeilen. Viele dieser Objekte verfügen über die Select Methode. Allerdings sollten Sie Select möglichst vermeiden, da diese Methode sich negativ auf die Performance auswirken kann.
Dieser Beitrag ist ein Teil der VBA Grundlagen Serie.
Denn bei jedem Select wird das Ereignis Worksheet_SelectionChange
ausgeführt. Dadurch wird zunächst der im Ereignis definierte Code prozessiert und der Programmablauf wartet so lange, bis die Ausführung des Ereignis beendet ist.
Zwar kann man die Verarbeitung der Ereignisse mithilfe des folgenden Befehls ausschalten:
Application.EnableEvents = False
Aber selbst dann verbraucht das Selektieren viele Ressourcen und kostet unnötig Zeit. Außerdem wird der Benutzer durch das Hin- und Herspringen der Markierung verunsichert.
Dabei wird das Select
Statement in den seltensten Fällen tatsächlich benötigt. Vermeiden Sie daher, in Ihren Makros zuerst eine Zelle auszuwählen, um dann mittels Selection.Value
den Inhalt zu ändern:
Sub MitSelect()
Worksheets("Tabelle1").Range("A1").Select
Selection.Value = 1337
End Sub
Stattdessen sollten Sie direkte Referenz verwenden:
Sub OhneSelect()
Worksheets("Tabelle1").Range("A1").Value = 1337
End Sub
Die Beispiel Excel Datei mit dem sofort einsetzbaren Makro und 111+ andere Makros, die Ihr Leben leichter machen, finden Sie hier.
Beeindrucke deinen Chef mit coolen Excel Tricks!
- Lasse dich von deinen Kollegen nicht abhängen!
- Spare Zeit und nutze diese für angenehmere Dinge
- Steigere deine Produktivität und Effizienz
- Es ist leicht - In meinem Newsletter gebe ich Schritt für Schritt Anleitungen die jeder versteht
- Bei der Anmeldung zu meinem Newsletter erhälst du das Buch „Excel Tricks die deinen Chef beeindrucken“ als Willkommensgeschenk.
Weitere VBA Makro Beispiele:
Grundlagen:
Einführung in die objektorientierte Programmierung
Objekte, Methoden, Eigenschaften, Ereignisse und der Objektkatalog
Entwicklertools einblenden
Erstes Makro anlegen
Erste Makros:
Das aktuelle Datum in eine Zelle eintragen
Mehrzeiliges Meldungsfenster
Eine Tabelle nach einer Rückfrage löschen
Eine Eingabemaske erstellen
Zellen:
Bereich auslesen
Definierten Bereich füllen und leeren
Zellen im Bereich summieren
Bedingte Summation – Alle Werte größer als 100 summieren
Letzte verwendete Zeile bestimmen
Letzte verwendete Spalte bestimmen
Kommentare hinzufügen
Bedingungen:
Prüfen ob der Inhalt einer Zelle numerisch ist
Prüfen ob die Zelle leer ist
Zelle auf ein gültiges Datum prüfen
Sprachabhängige Meldungen ausgeben (SELECT CASE)
Schleifen:
Alle verwendete Zeilen bearbeiten
Wochenenden hervorheben
Tabellen über eine Schleife ausblenden
Leere Spalten verstecken
Alle Zellen in dem markierten Bereich bearbeiten (Großschreibung / Kleinschreibung)
Mehrere Bereiche vereinen und alle Zellen formatieren
Alle Tabellen schützen
Zeilen:
Jede zweite Zeile einfärben
Zeilenhöhe festlegen
Gesamte Zeile summieren
Leere Zeilen löschen
Zeilen ausblenden
Mehrmals vorkommende Einträge filtern (Unikatsliste erstellen)
Bestimmte Zeilen in eine andere Tabelle kopieren
Leere Zeilen einfügen
Eigene Suchfunktion bauen – bestimmte Zeile finden
Spalten:
Daten filtern
Spaltenbereite anpassen
Spalte summieren
Spalten ausblenden
Leere Spalten löschen
Spalten formatieren
Spalten in eine andere Tabelle kopieren
Neue Spalten einfügen
Bestimmte Spalte finden
Tabellen:
Tabellennamen auslesen
Neue Tabellen einfügen und benennen
Tabellen löschen
Formeln entfernen
Druckbereich bestimmen
Farbe der Tabellenreiter ändern
Tabelle kopieren
Prüfung Tabellen- oder Diagrammblatt
Eigene Kopf-und Fußzeilen erstellen
Arbeitsmappen:
Arbeitsmappe erzeugen
Arbeitsmappe speichern
Verknüpfungen entfernen
Dokumenteigenschaften auslesen und verändern
Persönliche Informationen aus Dateieigenschaften löschen
Daten und Informationen über Dokumentprüfung entfernen
Arbeitsmappe löschen
Applikation:
Neuberechnung ausschalten
Excel Funktionen ein- und ausschalten
Ansichtsoptionen über Makro steuern
Excel-Version auslesen
Umgebungsvariablen auslesen
Mappen-Ereignisse:
Scrollarea festlegen
Das Schließen der Mappe verhindern
Druckvorgang abfangen
Auswahl bestimmter Tabellen unterbinden
Neue Tabellen sofort löschen
Tastenkombination definieren
Tabellen-Ereignisse:
Bereichsauswahl verhindern
Geänderte Zellen markieren
Eingaben konvertieren (z.B. Großbuchstaben)
Änderungen in einem Change Log dokumentieren
Eingaben sofort rückgängig machen
Tabellenverschiebung verhindern
Eine Zeile per Doppelklick einfärben
Rechten Mausklick deaktivieren
Standardfunktionen:
Nach einer Zeichenkette suchen – InStr
Länge mit Left und Len messen und korrigieren
Pfad und Dateinamen mit Funktionen InStrRev, Left und Mid trennen
Zeichen ersetzen mit Replace
Leerzeichen mit Trim entfernen
Zeichenkette aufteilen und zusammenfügen mit Split und Join
Mit DatePart Quartal und Kalenderwoche aus einem Datum ableiten
Differenz von zwei Datumswerten mit DateDiff berechnen
Text mit CDate in Datum umwandeln
Benutzerdefinierte Funktionen
Nur sichtbare Zellen summieren
Fett formatierte Werte zählen
Letzten Wert in der Zeile ausgeben
Eine eigene AutoText Funktion erstellen
Formeltext in Zelle ausgeben
Sonderzeichen entfernen
Prüfen, ob ein Bereich leer ist
Auf Ablaufdatum prüfen
Anzahl Kalenderwochen bestimmen
Modul-Funktionen
Prüfen ob eine Tabelle existiert
Existenz der Arbeitsmappe prüfen
Prüfen ob eine Mappe geöffnet ist
Letzten Monatstag ermitteln
Alle Leerzeichen entfernen
Alphanumerische Zeichen löschen
Tabellenschutz prüfen
Spalten auf Inhalte prüfen
Quersumme berechnen
Verschiedene Beispiele
Lottoschein mit Zufallszahlen ausfüllen
Wochentag des Geburtstages ermitteln
Jede Zeile in eine bestimmte Tabelle kopieren
Wie Sie Ihre Tabelle mit VBA sortieren
Hinterlasse einen Kommentar
An der Diskussion beteiligen?Hinterlasse uns deinen Kommentar!