2016-06-27 13 views
0

Ich habe ein Makro, das ich für eine Weile lief und habe es im Laufe der Zeit geändert und es gab kein Problem mit der Leistung bis jetzt. Ich habe nichts geändert, aber jetzt, wenn ich durchlaufe, pausiert nach .Bold für ca. 5-10 Sekunden.Excel 2007 VBA Anomalie mit Formatierung Schriftart

Dies ist der erste Teil meines Codes

Application.ScreenUpdating = False 
Application.EnableEvents = False 
Cells.Select 
With Selection.Interior 
    .Pattern = xlNone 
    .TintAndShade = 0 
    .PatternTintAndShade = 0 
End With 
With Selection.Font 
    .Bold = False 
    .Italic = False 
    .Underline = xlUnderlineStyleNone 

es auf dem ersten mit Selection.Font Befehl stecken erhalten - jeder von ihnen

Ich versuchte, die .Bold zu kommentieren, aber dann die. Italic tat das gleiche

das Problem, wenn ich Schritt für Schritt gehe es schnell geht dann, nachdem es versucht, zu ändern. Bold zum ersten Mal wartet es etwa 5-10 Sekunden dann geht in die nächste Zeile. Wenn ich ausmerze .bold dann .Italic lässt mich 5-10 Sekunden warten, bevor ich in die nächste Zeile gehe. Aber nachdem ich einmal den Code durchgegangen bin, kann ich zurückgehen und die selbe Linie laufen lassen, es läuft mit normaler Geschwindigkeit.

Weiß jemand, warum dies passieren könnte?

+3

'Cells' wird jede Zelle in der Kalkulationstabelle auswählen und Formatierung ist eine der langsamsten Operationen VBA ohnehin durchführen kann. Sie würden früher oder später auf dieses Problem stoßen. Versuchen Sie, Ihren Bereich zu definieren, damit er nicht versucht, die Formatierung auf ein ganzes Arbeitsblatt anzuwenden, sondern nur auf die aufgefüllten oder gewünschten Zellen. – tigeravatar

+0

Gibt es eine Möglichkeit, die Gruppe von Zellen mit Inhalten in ihnen automatisch auszuwählen. oder das zu schwer zu programmieren? –

+0

Ich stimme @tigeravatar zu. Es macht auch Sinn, dass dies langsamer wird, da die Blätter in Excel größer geworden sind. Zuvor formatierten Sie 65536 Zeilen und 256 Spalten = 16,7 Millionen Zellen. Jetzt formatieren Sie 1.048.576 Zeilen und 16.384 Spalten = 17,2 Milliarden Zellen gleichzeitig !! – Ralph

Antwort

0

Es war mein Standarddrucker, der Probleme verursachte. Ich habe eine Website gefunden, die mehr erklärt, als ich möchte. Ich ändere meinen Standarddrucker auf den Standard "Microsoft XPS Document Writer" und alles funktioniert normal. Es für Excel 2003, aber ich habe 2007 und es funktioniert für mich Nicht sicher, ob das mit nie Versionen funktioniert, aber hoffentlich haben sie dieses Problem bereits behoben.

-Link: BOLD font slows VBA performance in Excel 2003