Části Excelu se při spuštění kódu VBA v Excelu 2013 změní na bílou nebo šedou
Příznaky
Když v Microsoft Excel 2013 spustíte kód jazyka VBA (Microsoft Visual Basic for Applications), můžou se části Excelu zobrazovat bíle nebo šedě v závislosti na motivu Office. Zůstane prázdný, dokud se kód neskončí. K tomuto problému může dojít, pokud kód jazyka VBA provede jednu nebo více z následujících akcí v makrech, které běží dostatečně dlouho, aby uživatel viděl výsledky před dokončením makra:
- Opakované výběr buněk
- Vložit listy
- Aktualizace nebo otevření podokna úloh
- Přidání sešitu
Příčina
Příčinou tohoto problému jsou změny provedené v Microsoft Office 2013 za účelem optimalizace nového grafického modulu.
Řešení
Pomocí funkce ScreenUpdating (Zvýšení obrazovky) zakažte aktualizace obrazovky Excelu, abyste neviděli změny, když jsou zakázané. Tím se také může zvýšit výkon maker.
Application.ScreenUpdating = False Workooks.Add Application.ScreenUpdating = True
Pokud potřebujete vidět změny obrazovky, vložte za řádek v kódu příkaz DoEvents, který způsobí, že obrazovka bude bílá. Používání nástroje DoEvents střídmě pomůže udržet výkon maker.
Workbooks.Add DoEvents
Stav
Jedná se o známé omezení v Excelu 2013.
Poznámka
U všech verzí aplikace Excel může podobný efekt nastat u dlouhotrvajících maker, když systém Windows změní aplikaci na bílou a označí, že neodpovídá. K tomu dochází, protože aplikace Excel nereaguje na systém Windows, když je makro spuštěné. DoEvents vám v tomto scénáři také pomůže tím, že excelu umožní reagovat na Windows a povolit obnovení obrazovky aplikace.
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro