Freigeben über


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

Symptome

Wenn Sie Microsoft Visual Basic für Applikationen (VBA)-Code in Microsoft Excel 2013 ausführen, werden Teile von Excel je nach Office-Design möglicherweise weiß oder grau angezeigt. Er 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 lang genug ausgeführt wird, damit der Benutzer die Ergebnisse sehen kann, bevor das Makro abgeschlossen ist:

  • Wiederholtes Markieren 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 das neue Grafikmodul 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 nach der Zeile im Code einen DoEvents-Befehl ein, der 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

Diese Einschränkung ist eine bekannte Einschränkung in Excel 2013.

Notiz

Bei allen Excel-Versionen kann ein ähnlicher Effekt in makros mit langer Ausführung auftreten, wenn Windows die Anwendung weiß dreht und nicht reagiert. Dies tritt auf, da Excel nicht auf Windows reagiert, während das Makro ausgeführt wird. DoEvents unterstützt auch in diesem Szenario, indem Excel das Reagieren auf Windows erlaubt und dem Anwendungsbildschirm die Wiederherstellung zulässt.