/ / Excel VBA-Anwendungsobjekt

Excel VBA-Anwendungsobjekt

Arbeitsblattfunktion | Bildschirmaktualisierung | DisplayAlerts | Berechnung

Die Mutter aller Objekte ist Excel selbst. Wir nennen es das Anwendungsobjekt. Das Anwendungsobjekt ermöglicht den Zugriff auf viele Excel-Optionen.

Arbeitsblattfunktion

Sie können die WorksheetFunction-Eigenschaft in verwenden Excel VBA um auf Excel-Funktionen zuzugreifen.

1. Platzieren Sie beispielsweise eine Befehlsschaltfläche in Ihrem Arbeitsblatt, und fügen Sie die folgende Codezeile hinzu:

Range("A3").Value = Application.WorksheetFunction.Average(Range("A1:A2"))

Wenn Sie auf die Befehlsschaltfläche in dem Arbeitsblatt klicken, berechnet Excel VBA den Durchschnitt der Werte in Zelle A1 und Zelle A2 und platziert das Ergebnis in Zelle A3.

WorksheetFunction in Excel VBA

Hinweis: anstelle von Application.WorksheetFunction.Verwenden Sie einfach WorksheetFunction.Average. Wenn Sie sich die Formelleiste ansehen, können Sie sehen, dass die Formel selbst nicht in Zelle A3 eingefügt wird. Verwenden Sie die folgende Codezeile, um die Formel selbst in Zelle A3 einzufügen:

Range("A3").Value = "=AVERAGE(A1:A2)"

Bildschirmaktualisierung

Manchmal kann es nützlich sein, die Bildschirmaktualisierung zu deaktivieren (um Flimmern zu vermeiden), während Code ausgeführt wird. Infolgedessen wird Ihr Code schneller ausgeführt.

1. Platzieren Sie beispielsweise eine Befehlsschaltfläche in Ihrem Arbeitsblatt, und fügen Sie die folgenden Codezeilen hinzu:

Dim i As Integer

For i = 1 To 10000
    Range("A1").Value = i
Next i

Wenn Sie auf die Befehlsschaltfläche in dem Arbeitsblatt klicken, zeigt Excel VBA jeden Wert einen winzigen Bruchteil einer Sekunde an und das kann einige Zeit dauern.

Bildschirmaktualisierung

2. Um den Vorgang zu beschleunigen, aktualisieren Sie den Code wie folgt.

Dim i As Integer

Application.ScreenUpdating = False

For i = 1 To 10000
    Range("A1").Value = i
Next i

Application.ScreenUpdating = True

Daher wird Ihr Code viel schneller ausgeführt und Sie sehen nur das Endergebnis (10000).

DisplayAlerts

Sie können Excel VBA anweisen, beim Ausführen von Code keine Warnungen anzuzeigen.

1. Platzieren Sie beispielsweise eine Befehlsschaltfläche in Ihrem Arbeitsblatt, und fügen Sie die folgende Codezeile hinzu:

ActiveWorkbook.Close

Wenn Sie auf das Befehlsschaltfläche in dem Arbeitsblatt klicken, schließt Excel VBA Ihre Excel-Datei und fordert Sie auf, die Änderungen zu speichern, die Sie vorgenommen haben.

DisplayAlerts

2. Um Excel VBA anzuweisen, diese Warnung beim Ausführen von Code nicht anzuzeigen, aktualisieren Sie den Code wie folgt.

Application.DisplayAlerts = False

ActiveWorkbook.Close

Application.DisplayAlerts = True

Daher schließt Excel VBA Ihre Excel-Datei, ohne Sie zu bitten, die Änderungen zu speichern, die Sie vorgenommen haben. Alle Änderungen gehen verloren.

Berechnung

Standardmäßig ist die Berechnung auf automatisch eingestellt. Daher berechnet Excel die Arbeitsmappe automatisch jedes Mal neu, wenn sich ein Wert ändert, der sich auf eine Formel auswirkt. Wenn Ihre Arbeitsmappe viele komplexe Formeln enthält, können Sie das Makro beschleunigen, indem Sie die Berechnung auf manuell festlegen.

1. Platzieren Sie beispielsweise eine Befehlsschaltfläche in Ihrem Arbeitsblatt, und fügen Sie die folgende Codezeile hinzu:

Application.Calculation = xlCalculationManual

Wenn Sie auf das Befehlsschaltfläche in dem Arbeitsblatt klicken, legt Excel VBA Berechnung auf manuell fest.

2. Sie können dies überprüfen, indem Sie auf Datei, Optionen, Formeln klicken.

Berechnungsoptionen

3. Wenn Sie jetzt den Wert von Zelle A1 ändern, wird der Wert von Zelle B1 nicht neu berechnet.

Manuelle Berechnung

Sie können die Arbeitsmappe manuell neu berechnen, indem Sie F9 drücken.

4. In den meisten Fällen wird die Berechnung am Ende des Codes wieder auf "Automatisch" gesetzt. Fügen Sie einfach die folgende Codezeile hinzu, um dies zu erreichen.

Application.Calculation = xlCalculationAutomatic
Lesen Sie auch: