einfaches Makro sehr langsam
08.11.2019 13:30:38
Klaus
ich habe ein sehr einfaches Makro, das dürfe für Excel überhaupt kein Problem sein. Die üblichen Geschwindigkeitstricks habe ich auch drin. Trotzdem läuft es irre langsame 38 Sekunden, in denen Excel auch noch auf "keine Rückmeldung" schaltet.
in Tabelle1 und Tabelle4 sind nur jeweils ein paar hundert Zeilen * ein dutzend Spalten vorhanden, die Datei ist vor dem löschen 295kb groß. Es handelt sich also nicht um eine Monstertabelle mit millionen Einträgen! Nach dem löschen hat die Datei noch 276kb. Drücke ich dann den löschen-Button nochmal, läuft das Makro in 0,4 Sekunden durch - es dauert also tatsächlich Zeit, die Daten zu löschen.
Der Übeltäter ist natürlich "Cells.ClearContents". Gibt es eine schnellere Möglichkeit, ein Blatt komplett zu löschen?
LG,
Klaus
Private Sub CommandButton2_Click()
Dim t
t = Timer
GetMoreSpeed True
Range("A3:A3000").ClearContents
Range("G3:G3000").ClearContents
Range("L3:L3000").ClearContents
Range("P3:P3000").ClearContents
Range("T3:T3000").ClearContents
Range("AB1:AB12").ClearContents
Range("AA1").ClearContents
Tabelle1.Cells.ClearContents
Tabelle4.Cells.ClearContents
GetMoreSpeed False
MsgBox Timer - t
End Sub
Public Static Sub GetMoreSpeed(Optional ByVal Modus As Boolean = True)
Dim intCalculation As Integer
If Modus = True Then intCalculation = Application.Calculation
With Application
.ScreenUpdating = Not Modus
.EnableEvents = Not Modus
.Calculation = IIf(Modus = True, xlManual, intCalculation)
.Cursor = IIf(Modus = True, 2, -4143)
End With
End Sub