Excel 2016 VBA sebességi tippek

A VBA for Excel 2016 gyors, de nem mindig elég gyors. (A számítógépes programok soha nem elég gyorsak.) Folytassa az olvasást, hogy felfedezzen néhány programozási példát, amelyek segítségével felgyorsíthatja a makrókat.

Képernyőfrissítés kikapcsolása

Makró végrehajtásakor hátradőlhet, és végignézheti a képernyőn megjelenő összes műveletet, amely a makróban történik. Bár ez tanulságos lehet, miután a makró megfelelően működik, gyakran bosszantó, és jelentősen lelassíthatja a makró teljesítményét. Szerencsére letilthatja a makró végrehajtásakor szokásosan előforduló képernyőfrissítést. A képernyőfrissítés kikapcsolásához használja a következő utasítást:

Application.ScreenUpdating = Hamis

Ha azt szeretné, hogy a felhasználó lássa, mi történik a makró bármely pontján, a következő utasítással kapcsolja vissza a képernyőfrissítést:

Application.ScreenUpdating = Igaz

A sebességkülönbség bemutatásához hajtsa végre ezt az egyszerű makrót, amely egy tartományt számokkal tölt meg:

Sub FillRange()
  Dim r as Long, c As Long
  Dim Number as Long
  Szám = 0
  Ha r = 1–50
    c = 1 és 50 között
      Szám = Szám + 1
      Cells(r, c).Válassza ki
      Cells(r, c).Érték = Szám
    Következő c
  Következő r
Vége Sub

Láthatja, hogy minden cella ki van jelölve, és az érték be van írva a cellákba. Most illessze be a következő utasítást az eljárás elejére, és hajtsa végre újra:

Application.ScreenUpdating = Hamis

A tartomány sokkal gyorsabban kitöltődik, és csak akkor látja az eredményt, ha a makró fut, és a képernyőfrissítés (automatikusan) True értékre nem állítja.

A kód hibakeresése közben a program végrehajtása néha valahol középen ér véget, anélkül, hogy újra bekapcsolta volna a Képernyőfrissítést. Emiatt az Excel alkalmazásablakja néha teljesen leáll. A fagyott állapotból való kiút egyszerű: Menjen vissza a VBE-hez, és hajtsa végre a következő utasítást az azonnali ablakban:

Application.ScreenUpdating = Igaz

Az automatikus számítás kikapcsolása

Ha sok összetett képletet tartalmazó munkalapja van, azt tapasztalhatja, hogy jelentősen felgyorsíthatja a dolgokat, ha manuálisra állítja a számítási módot, miközben a makró fut. Amikor a makró befejeződött, állítsa vissza a számítási módot automatikusra.

A következő utasítás az Excel számítási módját manuálisra állítja:

Application.Calculation = xlCalculationManual

Hajtsa végre a következő utasítást a számítási mód automatikus beállításához:

Application.Calculation = xlCalculationAutomatic

Ha a kód képleteredményekkel rendelkező cellákat használ, a számítás kikapcsolása azt jelenti, hogy a cellák nem számítódnak újra, hacsak kifejezetten nem utasítja az Excelhez!

A bosszantó figyelmeztető üzenetek megszüntetése

Mint ismeretes, a makró automatikusan végrehajthat egy sor műveletet. Sok esetben elindíthat egy makrót, majd lóghat a szünetben, miközben az Excel végzi a dolgát. Egyes Excel-műveletek azonban olyan üzeneteket jelenítenek meg, amelyek emberi választ igényelnek. Az ilyen típusú üzenetek azt jelentik, hogy nem hagyhatja felügyelet nélkül az Excelt, amíg végrehajtja a makrót – hacsak nem ismeri a titkos trükköt.

Excel 2016 VBA sebességi tippek

Utasíthatja az Excelt, hogy ne jelenítse meg az ilyen típusú riasztásokat makró futtatása közben.

A figyelmeztető üzenetek elkerülésének titkos trükkje a következő VBA-utasítás beszúrása a makróba:

Application.DisplayAlerts = Hamis

Az Excel az alapértelmezett műveletet hajtja végre az ilyen típusú üzeneteknél. Lap törlése esetén az alapértelmezett művelet a Törlés. Ha nem biztos abban, hogy mi az alapértelmezett művelet, végezzen tesztet, hogy megtudja, mi történik.

Az eljárás végén az Excel automatikusan visszaállítja a DisplayAlerts tulajdonságot True értékre. Ha vissza kell kapcsolnia a riasztásokat az eljárás befejezése előtt, használja ezt az utasítást:

Application.DisplayAlerts = Igaz

Objektumhivatkozások egyszerűsítése

Amint azt valószínűleg már tudja, az objektumokra való hivatkozások nagyon hosszadalmasak lehetnek. Például egy Range objektumra vonatkozó teljesen minősített hivatkozás így nézhet ki:

Munkafüzetek ("MyBook.xlsx"). Munkalapok ("Sheet1") _
  .Tartomány („Kamatláb”)

Ha a makró gyakran használja ezt a tartományt, érdemes lehet objektumváltozót létrehozni a Set paranccsal. Például a következő utasítás ezt a Range objektumot egy Rate nevű objektumváltozóhoz rendeli:

Set Rate = munkafüzetek ("MyBook.xlsx") _
  .Worksheets(“Sheet1”).Tartomány(“Kamatláb”)

Az objektumváltozó meghatározása után a hosszadalmas hivatkozás helyett használhatja a Rate változót. Például megváltoztathatja az InterestRate nevű cella értékét:

Rate. Value = .085

Ezt sokkal könnyebb begépelni, mint a következő állítást:

Munkafüzetek ("MyBook.xlsx"). Munkalapok ("Sheet1"). _
  Tartomány("Kamat" = 0,085

A kódolás egyszerűsítésén túl az objektumváltozók használata jelentősen felgyorsítja a makrókat.

Változótípusok deklarálása

Általában nem kell aggódnia a változókhoz hozzárendelt adatok típusa miatt. Az Excel minden részletet kezel helyetted a színfalak mögött. Például, ha van egy MyVar nevű változója, bármilyen típusú számot rendelhet ehhez a változóhoz. Az eljárás későbbi szakaszában akár szöveges karakterláncot is rendelhet hozzá.

Ha azt szeretné, hogy az eljárások a lehető leggyorsabban lefussanak, mondja meg az Excelnek, hogy milyen típusú adatok lesznek hozzárendelve az egyes változókhoz. Ez a változó típusának deklarálása .

Általában azt az adattípust érdemes használni, amelyik a legkisebb számú bájtot igényli, mégis képes kezelni a hozzá rendelt összes adatot. Amikor a VBA adatokkal dolgozik, a végrehajtási sebesség a VBA rendelkezésére álló bájtok számától függ. Más szavakkal, minél kevesebb bájtot használnak fel az adatok, a VBA annál gyorsabban tudja elérni és kezelni az adatokat. Ez alól kivételt képez az Integer adattípus. Ha a sebesség kritikus, használja inkább a Hosszú adattípust.

Ha objektumváltozót használ, akkor a változót egy adott objektumtípusként deklarálhatja. Íme egy példa:

Dim Rate as Range
Set Rate = munkafüzetek ("MyBook.xlsx") _
  .Worksheets(“Sheet1”).Tartomány(“Kamatláb”)

A With-End With szerkezet használata

Több tulajdonságot is be kell állítania egy objektumhoz? A kód gyorsabban fut, ha a With-End With szerkezetet használja. További előny, hogy a kód könnyebben olvasható.

A következő kód nem használja a With-End With kifejezést:

Selection.HorizontalAlignment = xlCenter
Selection.VerticalAlignment = xlCenter
Selection.WrapText = Igaz
Kiválasztás.Tájolás = 0
Selection.ShrinkToFit = False
Selection.MergeCells = False

Itt ugyanaz a kód, átírva a With-End With használatára:

Kiválasztással
  .HorizontalAlignment = xlCenter
  .VerticalAlignment = xlCenter
  .WrapText = Igaz
  .Tájolás = 0
  .ShrinkToFit = Hamis
  .MergeCells = Hamis
Vége ezzel

A With-End With használatakor ügyeljen arra, hogy minden állítás ponttal kezdődjön.

Leave a Comment

Lábjegyzetek és végjegyzetek létrehozása a Word 2013-ban

Lábjegyzetek és végjegyzetek létrehozása a Word 2013-ban

Lábjegyzetek és végjegyzetek létrehozása a Word 2013-ban. Részletes útmutató, hogyan készíthet különféle stílusú jegyzeteket bibliográfiai információkhoz vagy magyarázó megjegyzésekhez.

Hogyan lehet kiemelni a statisztikailag kiugró értékeket az Excelben

Hogyan lehet kiemelni a statisztikailag kiugró értékeket az Excelben

Tudjon meg mindent arról, hogyan lehet az Excelben kiemelni a statisztikailag kiugró értékeket, mégpedig egyszerű eszközökkel és módszerekkel. Kiemelt figyelmet fordítunk a kiugró értékek azonosítására és kezelésére.

Hogyan lehet mintát venni az adatokból Excelben

Hogyan lehet mintát venni az adatokból Excelben

Az Excel Mintavételi eszközével véletlenszerűen kiválaszthat elemeket egy adatkészletből vagy választhat minden n-edik elemet. Ismerje meg, hogyan használhatja ezt a hasznos funkciót az adatelemzéshez!

10 klassz trükk a Microsoft Word 2019 programmal

10 klassz trükk a Microsoft Word 2019 programmal

Fedezze fel a Microsoft Word 2019 legjobb trükkjeit, amelyek segítenek a hatékonyabb munkavégzésben. Tudd meg, hogyan használhatod ki a program funkcióit!

Bekezdések igazítása és behúzása a Word 2019-ben

Bekezdések igazítása és behúzása a Word 2019-ben

A Word 2019-ben a bekezdések igazítása és behúzása kulcsfontosságú a dokumentumok megfelelő megjelenítéséhez. Ismerje meg a formázási lehetőségeket és tippeket a hatékonyabb munkához.

Az Excel 2019 Solver használata

Az Excel 2019 Solver használata

Fedezze fel, hogyan használhatja az Excel 2019 Solver bővítményt a komplex problémák megoldására. A célcella, változócellák és kényszerek beállítása lépésről lépésre.

Dinamikus elemek hozzáadásához használja a Word 2019 mezőit

Dinamikus elemek hozzáadásához használja a Word 2019 mezőit

A Word lehetővé teszi dinamikus elemek hozzáadását a dokumentumhoz. Fedezze fel, hogyan lehet különböző mezőket használni a Word programban a dinamikus tartalom létrehozásához.

Oszloptípusok a SharePoint 2010-ben

Oszloptípusok a SharePoint 2010-ben

A SharePoint 2010 oszlopai az adatok tárolására szolgálnak. Fedezze fel a különböző oszlop típusokat és azok alkalmazását a SharePoint rendszeren belül.

A nem kívánt szöveg eltávolítása a Word 2013-ban

A nem kívánt szöveg eltávolítása a Word 2013-ban

A Word 2013 szövegtörlésének képessége kulcsfontosságú, legyen szó szövegalkotásról vagy törlésről. Ismerje meg a hatékony szövegtörlési módszereket!

Hogyan készítsünk fotóalbumot a PowerPoint 2016-ban

Hogyan készítsünk fotóalbumot a PowerPoint 2016-ban

A fotóalbum funkció a PowerPoint 2016-ban lehetővé teszi, hogy egyszerre több fényképet illesszen be egy prezentációba, megkönnyítve ezzel a többszörös képek kezelését.