Megosztás a következőn keresztül:


Az Excel egyes részei fehérre vagy szürkére változnak, amikor VBA-kódot futtat az Excel 2013-ban

Jelenségek

Ha a Microsoft Visual Basic for Applications (VBA) kódot futtatja a Microsoft Excel 2013-ban, az Office-témától függően az Excel egyes részei fehér vagy szürke színűek lehetnek. A kód befejeződéséig üres marad. Ez a probléma akkor fordulhat elő, ha a VBA-kód egy vagy több alábbi műveletet hajt végre egy olyan makróban, amely elég hosszú ideig fut ahhoz, hogy a felhasználó lássa az eredményeket, mielőtt a makró befejeződne:

  • Cellák ismételt kijelölése
  • Lapok beszúrása
  • Munkaablakok frissítése vagy megnyitása
  • Munkafüzet hozzáadása

Ok

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.

Áthidaló megoldás

  1. A ScreenUpdating használatá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
    
  2. Ha módosítania kell a képernyőt, szúrjon be egy DoEvents-parancsot a kód sora után, amely fehér színt eredményez. A DoEvents takarékos használata segít fenntartani a makró teljesítményét.

    Workbooks.Add
    DoEvents
    

Állapot

Ez a korlátozás az Excel 2013 ismert korlátozása.

Megjegyzés:

Az Excel minden verziójában hasonló hatás jelentkezhet 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, ha lehetővé teszi az Excel számára, hogy válaszoljon a Windowsra, és engedélyezze az alkalmazás képernyőjének helyreállítását.