Teile von Excel werden weiß oder grau, wenn Sie VBA-Code in Excel 2013 ausführen

Symptome

Wenn Sie Vba-Code (Microsoft Visual Basic for Applications) in Microsoft Excel 2013 ausführen, werden Teile von Excel je nach Office-Design möglicherweise weiß oder grau angezeigt. Sie bleibt leer, bis der Code abgeschlossen ist. Dieses Problem kann auftreten, wenn der VBA-Code eine oder mehrere der folgenden Aktionen in einem Makro ausführt, das so lange ausgeführt wird, dass der Benutzer die Ergebnisse sehen kann, bevor das Makro abgeschlossen ist:

  • Wiederholtes Auswählen von Zellen
  • Einfügen von Blättern
  • Aktualisieren oder Öffnen von Aufgabenbereichen
  • Hinzufügen einer Arbeitsmappe

Ursache

Dieses Problem wird durch die Änderungen verursacht, die in Microsoft Office 2013 vorgenommen werden, um die neue Grafik-Engine zu optimieren.

Problemumgehung

  1. Verwenden Sie ScreenUpdating, um die Bildschirmaktualisierungen von Excel zu deaktivieren, damit die Änderungen nicht angezeigt werden, während sie deaktiviert sind. Dies kann auch die Makroleistung verbessern.

    Application.ScreenUpdating = False
    Workooks.Add
    Application.ScreenUpdating = True
    
  2. Wenn Die Bildschirmänderungen angezeigt werden müssen, fügen Sie einen DoEvents-Befehl hinter der Zeile im Code ein, die dazu führt, dass der Bildschirm weiß angezeigt wird. Die sparsame Verwendung von DoEvents trägt dazu bei, die Makroleistung aufrechtzuerhalten.

    Workbooks.Add
    DoEvents
    

Status

Dies ist eine bekannte Einschränkung in Excel 2013.

Hinweis

Für alle Excel-Versionen kann ein ähnlicher Effekt bei makros mit langer Ausführungsdauer auftreten, wenn Windows die Anwendung weiß macht und markiert, dass sie nicht reagiert. Dies liegt daran, dass Excel nicht auf Windows reagiert, während das Makro ausgeführt wird. DoEvents unterstützt sie auch in diesem Szenario, indem Excel auf Windows reagiert und die Wiederherstellung des Anwendungsbildschirms zulässt.