VBA képernyő frissítése - A kódfuttatási folyamat felgyorsítása

Excel VBA képernyő frissítése

A VBA képernyőfrissítés olyan tulajdonság, amelyet a figyelemelterelés villogásának elkerülésére vagy megakadályozására használnak a kód futtatása közben, és a képernyőfrissítés kikapcsolásával gyorsabbá teszik azt. Kikapcsolhatjuk a képernyő frissítését, ha ezt a tulajdonságot hamisnak állítjuk be.

Gyakran érezhetjük, hogy az excel képernyő megőrül, miközben a makró fut, és ettől majdnem elkeseredünk. De hogyan kezeljük ezeket a helyzeteket, és a kódot gyorsabban futtassuk, mint a szokásos lassú dolgot?

A képernyőfrissítés olyan dolog, amelyet észrevehetünk, miközben az excel makró fut. Amikor a feladat végrehajtódik, észrevehetjük, hogy a képernyő frissíti az értékeket, amíg a makró befejezi a hozzárendelt feladatot. Képernyőnk villogása vagy frissülése az excel program lelassulásához vezet, és a szokásosnál hosszabb ideig tart a feladat elvégzése.

A VBA-ban van egy „ScreenUpdating” nevű tulajdonságunk, és ezt a tulajdonságot FALSE-ra állítottuk, hogy a kód futása közben kiküszöbölje a képernyő-frissítés folyamatát.

Ebben a cikkben a kód futtatása közben búcsúzunk a képernyőn megjelenő akciódrámák megtekintésétől. Ma gyorsabban és gyorsabban fogja futtatni a kódot, mint a szokásos idő.

Mikor kell használni a képernyőfrissítési funkciót?

Tegyük fel, hogy kétségei vannak arról, mikor használja ezt a technikát. Nézze meg az alábbi pontokat.

  • Amikor nagyszámú cellán keresztül halad.
  • E-mailek küldése az Excel VBA-ból.
  • Váltás az excel munkafüzetek között.
  • Új munkafüzetek megnyitása.

Hogyan kell használni a képernyőfrissítési funkciót a VBA-kódban?

1. példa - A képernyő frissítésének kikapcsolása

Nézze meg például az alábbi kódot.

Kód:

Sub Screen_Updating () Dim RowCount As Long Dim ColumnCount As Long Dim MyNumber As Long MyNumber = 0 RowCount = 1-50 for ColumnCount = 1-50 MyNumber = MyNumber + 1 Cell (RowCount, ColumnCount). Válassza ki a Cellákat (RowCount, ColumnCount) .Value = Saját szám Következő oszlopszám Szám Következő sorszám vége al

A fenti egy beágyazott VBA hurkot beszúrni sorszámát az első oszloptól a 50 th oszlopra, és újra visszatér, és betét sorszám kezdve 51 a második sor a 50 th oszlopot.

Mint ez, akkor helyezze amíg el nem éri a 50 th sor.

Amíg ez a kód fut, észreveheti a képernyő villogását, és nem tehet semmit azon kívül, hogy megnézi ezt az őrült pillanatot.

Mindezek elkerülése érdekében hozzáadhatjuk a Képernyőfrissítés lehetőséget a FALSE-hoz.

Először a Képernyőfrissítés funkció eléréséhez hozzáférnünk kell az Application objektumhoz.

Amint az Application objektummal láthatjuk, sok tulajdonságunk és módszerünk van. Tehát válassza az IntelliSense listából a Képernyő frissítése lehetőséget.

Megjegyzés: A változók deklarálása után azonnal alkalmaznia kell a Képernyő frissítése funkciót.

A Képernyő frissítése tulajdonság kiválasztása után tegyen egyenlőségjelet (=).

Amint láthatjuk, két logikai érték, azaz FALSE & TRUE.

A képernyő frissítésének leállításához állítsa az állapotot FALSE értékre.

Most, amikor a makró először futni kezd, a képernyő frissítési állapotát FALSE értékre frissíti, és a következő sorra lép.

Mivel a makró végrehajtotta a Képernyő frissítése FALSE-ra, nem engedélyezi a képernyő frissítését, amíg a kód végrehajtja a feladatát.

2. példa -

A képernyő frissítését mindig állítsa IGAZ értékre a végén

Láttam, hogy sokan a Képernyő-frissítést FALSE-ra állították, de a makró végén elfelejtették visszaállítani IGAZ-ra.

A makró végén mindig állítsa vissza a Képernyőfrissítés értéket IGAZ értékre.

Kód:

Sub Screen_Updating () Dim RowCount As Long Dim ColumnCount As Long Dim MyNumber As Long Application.ScreenUpdating = False MyNumber = 0 RowCount = 1-50 for ColumnCount = 1-50 MyNumber = MyNumber + 1 Cell (RowCount, ColumnCount). Válassza ki a cellákat (RowCount, ColumnCount). Érték = MyNumber Következő ColumnCount Következő RowCount Application.ScreenUpdating = True End Sub

érdekes cikkek...