Excel 2016 VBA kiirusnõuanded

VBA for Excel 2016 on kiire, kuid see pole alati piisavalt kiire. (Arvutiprogrammid pole kunagi piisavalt kiired.) Jätkake lugemist, et leida mõned programmeerimisnäited, mida saate makrode kiirendamiseks kasutada.

Ekraani värskendamise väljalülitamine

Makro käivitamisel saate rahulikult istuda ja vaadata kõiki makros toimuvaid ekraanitoiminguid. Kuigi see võib olla õpetlik, on see pärast makro korralikult tööle hakkamist sageli tüütu ja võib teie makro jõudlust märkimisväärselt aeglustada. Õnneks saate keelata ekraani värskendamise, mis tavaliselt makro käivitamisel toimub. Ekraani värskendamise väljalülitamiseks kasutage järgmist avaldust.

Application.ScreenUpdating = Vale

Kui soovite, et kasutaja näeks makro mis tahes hetkel toimuvat, kasutage ekraani värskendamise uuesti sisselülitamiseks järgmist avaldust.

Application.ScreenUpdating = Tõene

Kiiruse erinevuse demonstreerimiseks käivitage see lihtne makro, mis täidab vahemiku numbritega:

Sub FillRange()
  Dim r as Long, c As Long
  Dim number sama pikk
  Arv = 0
  Kui r = 1 kuni 50
    Kui c = 1 kuni 50
      Arv = arv + 1
      Lahtrid(r, c).Valige
      Lahtrid(r, c).Väärtus = arv
    Järgmine c
  Järgmine r
Lõpeta alam

Näete, et iga lahter valitakse ja lahtritesse sisestatakse väärtus. Nüüd sisestage protseduuri alguses järgmine lause ja käivitage see uuesti:

Application.ScreenUpdating = Vale

Vahemik täitub palju kiiremini ja te ei näe tulemust enne, kui makro on töötamise lõpetanud ja ekraani värskendamine on (automaatselt) seatud väärtusele Tõene.

Koodi silumisel lõpeb programmi täitmine mõnikord kuskil keskel, ilma et oleksite ekraanivärskendust uuesti sisse lülitanud. See põhjustab mõnikord Exceli rakenduse akna täieliku reageerimise. Väljapääs sellest külmutatud olekust on lihtne: minge tagasi VBE-sse ja käivitage kohe aknas järgmine lause:

Application.ScreenUpdating = Tõene

Automaatse arvutamise väljalülitamine

Kui teil on paljude keeruliste valemitega tööleht, võite avastada, et saate asju märkimisväärselt kiirendada, kui määrate makro täitmise ajal arvutusrežiimi käsitsi. Kui makro on lõppenud, seadke arvutusrežiim tagasi automaatseks.

Järgmine väide seab Exceli arvutusrežiimi käsitsi.

Application.Calculation = xlCalculationManual

Arvutusrežiimi automaatseks seadmiseks käivitage järgmine lause:

Application.Calculation = xlCalculationAutomatic

Kui teie kood kasutab valemitulemustega lahtreid, tähendab arvutamise väljalülitamine, et lahtreid ei arvutata ümber, välja arvatud juhul, kui te Excelil seda selgesõnaliselt käsite!

Nende tüütute hoiatusteadete kõrvaldamine

Nagu teate, saab makro automaatselt sooritada mitmeid toiminguid. Paljudel juhtudel saate makro käivitada ja seejärel puhkeruumis aega veeta, kuni Excel oma asja teeb. Mõned Exceli toimingud kuvavad aga sõnumeid, mis nõuavad inimese reageerimist. Seda tüüpi sõnumid tähendavad, et te ei saa jätta Excelit makro täitmise ajal järelevalveta – välja arvatud juhul, kui teate salajast nippi.

Excel 2016 VBA kiirusnõuanded

Saate anda Excelile käsu mitte kuvada makro käitamise ajal seda tüüpi hoiatusi.

Salajane trikk nende hoiatusteadete vältimiseks on järgmise VBA-lause sisestamine oma makrosse:

Application.DisplayAlerts = Vale

Excel teostab seda tüüpi sõnumite jaoks vaiketoimingu. Lehe kustutamise puhul on vaiketehinguks Delete. Kui te pole kindel, mis on vaiketoiming, tehke test, et näha, mis juhtub.

Kui protseduur lõppeb, lähtestab Excel atribuudi DisplayAlerts automaatselt väärtusele Tõene. Kui teil on vaja hoiatused enne protseduuri lõppu uuesti sisse lülitada, kasutage järgmist avaldust.

Application.DisplayAlerts = Tõene

Objektiviidete lihtsustamine

Nagu te ilmselt juba teate, võivad viited objektidele muutuda väga pikaks. Näiteks võib täielikult määratletud viide vahemiku objektile välja näha järgmine:

Töövihikud (“Minuraamat.xlsx”). Töölehed (“Leht1”) _
  Vahemik ("Intressimäär")

Kui teie makro kasutab seda vahemikku sageli, võiksite luua objektimuutuja, kasutades käsku Set. Näiteks määrab järgmine lause selle Range objekti objekti muutujale nimega Rate:

Määra määr = töövihikud ("MyBook.xlsx") _
  .Töölehed(“Leht1”). Vahemik(“Intressimäär”)

Pärast selle objektimuutuja määratlemist saate pikema viite asemel kasutada muutujat Rate. Näiteks saate muuta lahtri nimega InterestRate väärtust:

Rate.Value = 0,085

Seda on palju lihtsam sisestada kui järgmist väidet:

Töövihikud (“Minuraamat.xlsx”). Töölehed (“Leht1”). _
  Vahemik ("Intressimäär") = 0,085

Lisaks kodeerimise lihtsustamisele kiirendab objektimuutujate kasutamine teie makrosid märkimisväärselt.

Muutujate tüüpide deklareerimine

Tavaliselt ei pea te muretsema muutujale määratud andmete tüübi pärast. Excel tegeleb teie eest kulisside taga kõigi üksikasjadega. Näiteks kui teil on muutuja nimega MyVar, saate sellele muutujale määrata mis tahes tüüpi numbri. Saate sellele protseduuri hiljem isegi tekstistringi määrata.

Kui soovite, et teie protseduurid käivituksid võimalikult kiiresti, öelge Excelile, mis tüüpi andmed igale muutujale määratakse. Seda nimetatakse muutuja tüübi deklareerimiseks .

Üldiselt peaksite kasutama andmetüüpi, mis nõuab väikseimat arvu baite, kuid suudab siiski käsitleda kõiki talle määratud andmeid. Kui VBA töötab andmetega, sõltub täitmiskiirus VBA käsutuses olevate baitide arvust. Teisisõnu, mida vähem baite andmeid kasutab, seda kiiremini saab VBA andmetele juurde pääseda ja nendega manipuleerida. Erandiks on andmetüüp Integer. Kui kiirus on kriitiline, kasutage selle asemel pikka andmetüüpi.

Kui kasutate objektimuutujat, saate muutuja deklareerida konkreetse objektitüübina. Siin on näide:

Dim Rate as Range
Määra määr = töövihikud ("MyBook.xlsx") _
  .Töölehed(“Leht1”). Vahemik(“Intressimäär”)

Struktuuri With-End With kasutamine

Kas peate määrama objektile mitu atribuuti? Teie kood töötab kiiremini, kui kasutate struktuuri With-End With. Täiendav eelis on see, et teie koodi võib olla lihtsam lugeda.

Järgmine kood ei kasuta funktsiooni With-End With:

Selection.Horizontal Alignment = xlCenter
Selection.VerticalAlignment = xlCenter
Selection.WrapText = Tõene
Valik. Orientatsioon = 0
Selection.ShrinkToFit = Vale
Selection.MergeCells = Vale

Siin on sama kood, mis on ümber kirjutatud, et kasutada funktsiooni With-End With:

Valikuga
  .HorizontalAlignment = xlCenter
  .VerticalAlignment = xlCenter
  .WrapText = Tõene
  .Orientatsioon = 0
  .ShrinkToFit = Vale
  .MergeCells = Vale
Lõpeta

Kui kasutate With-End With kasutamist, veenduge, et iga lause algaks punktiga.

Leave a Comment

10 näpunäidet paremateks Microsoft Teamsi koosolekuteks

10 näpunäidet paremateks Microsoft Teamsi koosolekuteks

Uurige kümmet nõuannet Microsoft Teamsiga parema koosolekukogemuse saamiseks, sealhulgas märkmete tegemine, tausta hägustamine, vaigistamine ja koosolekute salvestamine.

Kuidas Word 2013 dokumentides kommentaare üle vaadata ja kustutada

Kuidas Word 2013 dokumentides kommentaare üle vaadata ja kustutada

Lühikeses Word 2013 dokumendis saate kommentaare hõlpsalt sirvida ja uurida. Siit leiate samm-sammult, kuidas kommentaare lugeda ja eemaldada.

Kuidas parandada Word 2016 tavalist malli

Kuidas parandada Word 2016 tavalist malli

Mõnikord varitseb kurjus selles, mis peaks olema Word 2016 peamises mõistlikkuse hoidlas: tavalises mallifailis. Õpi, kuidas taastada normaalne mall ja eemaldada probleemid.

Kuidas lisada lõigu taane Word 2013-s

Kuidas lisada lõigu taane Word 2013-s

Kuidas lisada lõigu taane Word 2013-s, et luua selgem ja professionaalsem ilme. Meie juhend aitab sul lihtsasti navigeerida Wordi funktsioonide kaudu ja tutvustab esimeses reas taande ning rippuva taande lisamise viise.

Kuidas Outlook 2016-s uusi kiireid samme luua

Kuidas Outlook 2016-s uusi kiireid samme luua

Lisaks kuuele kiirtoimingule, mis kuvatakse Outlooki esmakordsel installimisel, on teil valida veelgi rohkemate Quick Step mallide hulgast.

Kustutage oma PowerPointi slaididelt pliiatsi ja esiletõstja joonised

Kustutage oma PowerPointi slaididelt pliiatsi ja esiletõstja joonised

Kui olete esitluse ajal PowerPointi slaididele joonistamiseks kasutanud pliiatsit või markerit, saate joonised järgmise esitluse jaoks salvestada või need kustutada, nii et järgmisel näitamisel alustate puhaste PowerPointi slaididega. Pliiatsi ja markeri jooniste kustutamiseks järgige neid juhiseid: joonte kustutamine […]

Stiili teegi sisu rakenduses SharePoint 2010

Stiili teegi sisu rakenduses SharePoint 2010

Style'i teek sisaldab CSS-faile, XSL-faile ja eelmääratletud mallilehtede, lehepaigutuste ja juhtelementide poolt kasutatavaid pilte rakenduses SharePoint 2010. CSS-failide leidmiseks avaldamissaidi stiiliteegist: valige saidi toimingud → vaade. Kogu saidi sisu. Ilmub saidi sisu. Style raamatukogu asub […]

Vormindage numbreid tuhandetes ja miljonites Exceli aruannetes

Vormindage numbreid tuhandetes ja miljonites Exceli aruannetes

Ärge uputage oma publikut tohutute numbritega. Microsoft Excelis saate parandada oma armatuurlaudade ja aruannete loetavust, vormindades numbrid tuhandetes või miljonites.

Kuidas SharePointi saite jagada ja jälgida

Kuidas SharePointi saite jagada ja jälgida

Siit saate teada, kuidas kasutada SharePointi suhtlusvõrgustiku tööriistu, mis võimaldavad üksikisikutel ja rühmadel suhelda, koostööd teha, jagada ja ühendada.

Kuidas teisendada kuupäevi Excelis Juliani vormingutesse

Kuidas teisendada kuupäevi Excelis Juliani vormingutesse

Julia kuupäevi kasutatakse tootmiskeskkondades sageli ajatemplina ja partiinumbri kiirviitena. Seda tüüpi kuupäevade kodeerimine võimaldab jaemüüjatel, tarbijatel ja teenindusagentidel tuvastada toote valmistamise aja ja seega toote vanuse. Juliuse kuupäevi kasutatakse ka programmeerimises, sõjaväes ja astronoomias. Erinevad […]