Az Excel egyes részei fehérre vagy szürkére változnak, amikor VBA-kódot futtat az Excel 2013-ban
Jelenségek
Amikor Microsoft Visual Basic for Applications (VBA) kódot futtat Microsoft Excel 2013, az Excel egyes részei az Office-témától függően fehér vagy szürke színnel jelenhetnek meg. A kód befejeződéséig üres marad. Ez a probléma akkor fordulhat elő, ha a VBA-kód végrehajt egy vagy több alábbi műveletet egy olyan makróban, amely elég hosszú ideig fut ahhoz, hogy a felhasználó lássa az eredményeket a makró befejeződése előtt:
- Cellák ismételt kijelölése
- Lapok beszúrása
- Munkaablakok frissítése vagy megnyitása
- Munkafüzet hozzáadása
A probléma oka
Ezt a problémát a Microsoft Office 2013-ban az új grafikus motor optimalizálása érdekében végrehajtott módosítások okozzák.
Kerülő megoldás
A ScreenUpdating funkcióval letilthatja az Excel képernyőfrissítéseit, hogy ne láthassa a módosításokat, amíg le vannak tiltva. Ez javíthatja a makró teljesítményét is.
Application.ScreenUpdating = False Workooks.Add Application.ScreenUpdating = True
Ha meg kell jelennie a képernyő változásainak, szúrjon be egy DoEvents parancsot a kód azon sora után, amely fehér színt eredményez a képernyőn. A DoEvents takarékos használata segít fenntartani a makróteljesítményt.
Workbooks.Add DoEvents
Állapot
Ez egy ismert korlátozás az Excel 2013-ban.
Megjegyzés:
Az Excel minden verziójában hasonló hatás jelentkezhet a hosszú ideig futó makrókban, amikor a Windows fehérre változtatja az alkalmazást, és nem válaszol. Ez azért fordul elő, mert az Excel nem válaszol a Windowsra, miközben a makró fut. A DoEvents ebben a forgatókönyvben is segítséget nyújt, mivel lehetővé teszi, hogy az Excel válaszoljon a Windowsra, és engedélyezze az alkalmazás képernyőjének helyreállítását.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: