Excel 2016 VBA ātruma padomi

VBA programmai Excel 2016 ir ātra, taču ne vienmēr pietiekami ātra. (Datorprogrammas nekad nav pietiekami ātras.) Turpiniet lasīt, lai atklātu dažus programmēšanas piemērus, kurus varat izmantot makro paātrināšanai.

Ekrāna atjaunināšanas izslēgšana

Veicot makro, varat sēdēt un skatīties visas ekrānā redzamās darbības, kas notiek makro. Lai gan tas var būt pamācošs, pēc tam, kad makro darbojas pareizi, tas bieži vien ir kaitinoši un var ievērojami palēnināt makro veiktspēju. Par laimi, varat atspējot ekrāna atjaunināšanu, kas parasti notiek, izpildot makro. Lai izslēgtu ekrāna atjaunināšanu, izmantojiet šādu paziņojumu:

Application.ScreenUpdating = False

Ja vēlaties, lai lietotājs redzētu, kas notiek jebkurā makro darbības brīdī, izmantojiet šo paziņojumu, lai atkal ieslēgtu ekrāna atjaunināšanu:

Application.ScreenUpdating = patiess

Lai parādītu ātruma atšķirību, izpildiet šo vienkāršo makro, kas aizpilda diapazonu ar cipariem:

Sub FillRange()
  Dim r as Long, c As Long
  Aptumšot numuru tik ilgi
  Skaitlis = 0
  Ja r = 1 līdz 50
    Ja c = 1 līdz 50
      Skaitlis = Skaitlis + 1
      Šūnas (r, c). Atlasiet
      Šūnas(r, c).Vērtība = Skaitlis
    Nākamais c
  Nākamais r
Beigu apakš

Jūs redzat, ka tiek atlasīta katra šūna un šūnās tiek ievadīta vērtība. Tagad procedūras sākumā ievietojiet šādu paziņojumu un izpildiet to vēlreiz:

Application.ScreenUpdating = False

Diapazons tiek aizpildīts daudz ātrāk, un jūs neredzat rezultātu, kamēr makro nav beidzies un ekrāna atjaunināšana ir (automātiski) iestatīta uz True.

Atkļūdojot kodu, programmas izpilde dažkārt beidzas kaut kur pa vidu, neieslēdzot ekrāna atjaunināšanu. Tas dažkārt izraisa to, ka Excel lietojumprogrammas logs pilnībā nereaģē. Izeja no šī iesaldētā stāvokļa ir vienkārša: dodieties atpakaļ uz VBE un tūlītējā logā izpildiet šādu paziņojumu:

Application.ScreenUpdating = patiess

Automātiskā aprēķina izslēgšana

Ja jums ir darblapa ar daudzām sarežģītām formulām, iespējams, varat ievērojami paātrināt darbību, makro izpildes laikā iestatot aprēķina režīmu uz manuālu. Kad makro ir pabeigts, iestatiet aprēķina režīmu atpakaļ uz automātisko.

Šis paziņojums iestata Excel aprēķina režīmu uz manuālu:

Application.Calculation = xlCalculationManual

Izpildiet nākamo paziņojumu, lai iestatītu aprēķina režīmu uz automātisku:

Application.Calculation = xlCalculationAutomatic

Ja kodā tiek izmantotas šūnas ar formulas rezultātiem, aprēķinu izslēgšana nozīmē, ka šūnas netiks pārrēķinātas, ja vien jūs skaidri nenorādīsit to darīt Excel!

Šo nepatīkamo brīdinājuma ziņojumu novēršana

Kā jūs zināt, makro var automātiski veikt vairākas darbības. Daudzos gadījumos varat sākt makro un pēc tam pavadīt laiku pārtraukuma telpā, kamēr Excel dara savu. Tomēr dažas Excel darbības parāda ziņojumus, kuriem nepieciešama cilvēka reakcija. Šāda veida ziņojumi nozīmē, ka jūs nevarat atstāt programmu Excel bez uzraudzības, kamēr tā izpilda jūsu makro — ja vien nezināt slepeno triku.

Excel 2016 VBA ātruma padomi

Varat norādīt programmai Excel nerādīt šāda veida brīdinājumus makro palaišanas laikā.

Slepenais triks, lai izvairītos no šiem brīdinājuma ziņojumiem, ir šāda VBA paziņojuma ievietošana makro:

Application.DisplayAlerts = False

Programma Excel izpilda noklusējuma darbību šāda veida ziņojumiem. Lapas dzēšanas gadījumā noklusējuma darbība ir Dzēst. Ja neesat pārliecināts, kāda ir noklusējuma darbība, veiciet pārbaudi, lai redzētu, kas notiek.

Kad procedūra beidzas, programma Excel automātiski atiestata rekvizītu DisplayAlerts uz True. Ja pirms procedūras beigām ir jāieslēdz brīdinājumi, izmantojiet šo paziņojumu:

Application.DisplayAlerts = True

Objektu atsauču vienkāršošana

Kā jūs droši vien jau zināt, atsauces uz objektiem var kļūt ļoti garas. Piemēram, pilnībā kvalificēta atsauce uz diapazona objektu var izskatīties šādi:

Darbgrāmatas (“MyBook.xlsx”). Darba lapas (“1. lapa”) _
  .diapazons ("InterestRate")

Ja jūsu makro bieži izmanto šo diapazonu, iespējams, vēlēsities izveidot objekta mainīgo, izmantojot komandu Iestatīt. Piemēram, šāds paziņojums piešķir šo diapazona objektu objekta mainīgajam ar nosaukumu Rate:

Iestatīt ātrumu = darbgrāmatas ("MyBook.xlsx") _
  .Darblapas(“1. lapa”). Diapazons(“Interestes likme”)

Pēc šī objekta mainīgā definēšanas varat izmantot mainīgo Rate, nevis garo atsauci. Piemēram, varat mainīt šūnas ar nosaukumu InterestRate vērtību:

Likme.Vērtība = 0,085

To ir daudz vieglāk ierakstīt nekā šādu paziņojumu:

Darbgrāmatas (“MyBook.xlsx”). Darba lapas (“1. lapa”). _
  Diapazons (“Procentu likme”) = 0,085

Objektu mainīgo izmantošana ne tikai vienkāršo kodēšanu, bet arī ievērojami paātrina makro darbību.

Mainīgo tipu deklarēšana

Parasti jums nav jāuztraucas par datu veidu, ko piešķirat mainīgajam. Programma Excel apstrādā visas detaļas jūsu vietā aizkulisēs. Piemēram, ja jums ir mainīgais ar nosaukumu MyVar, šim mainīgajam varat piešķirt jebkura veida numuru. Jūs pat varat tam piešķirt teksta virkni vēlāk procedūras laikā.

Ja vēlaties, lai procedūras tiktu izpildītas pēc iespējas ātrāk, pastāstiet programmai Excel, kāda veida dati tiks piešķirti katram jūsu mainīgajam. To sauc par mainīgā tipa deklarēšanu .

Parasti jums vajadzētu izmantot datu tipu, kuram nepieciešams mazākais baitu skaits, taču joprojām var apstrādāt visus tam piešķirtos datus. Kad VBA strādā ar datiem, izpildes ātrums ir atkarīgs no VBA rīcībā esošo baitu skaita. Citiem vārdiem sakot, jo mazāk baitu tiek izmantoti dati, jo ātrāk VBA var piekļūt datiem un ar tiem manipulēt. Izņēmums ir Vesela skaitļa datu tips. Ja ātrums ir kritisks, tā vietā izmantojiet datu tipu Long.

Ja izmantojat objekta mainīgo, varat deklarēt mainīgo kā noteiktu objekta tipu. Šeit ir piemērs:

Dim Rate kā diapazons
Iestatīt ātrumu = darbgrāmatas ("MyBook.xlsx") _
  .Darblapas(“1. lapa”). Diapazons(“Interestes likme”)

Struktūras With-End With izmantošana

Vai objektam ir jāiestata vairāki rekvizīti? Jūsu kods darbojas ātrāk, ja izmantojat struktūru With-End With. Papildu priekšrocība ir tā, ka jūsu kodu var būt vieglāk nolasīt.

Šis kods neizmanto With-End With:

Selection.Horizontal Alignment = xlCenter
Selection.VerticalAlignment = xlCenter
Selection.WrapText = True
Atlase.Orientācija = 0
Selection.ShrinkToFit = False
Selection.MergeCells = False

Šeit ir tas pats kods, pārrakstīts, lai izmantotu With-End With:

Ar atlasi
  .HorizontalAlignment = xlCenter
  .VerticalAlignment = xlCenter
  .WrapText = True
  .Orientācija = 0
  .ShrinkToFit = False
  .MergeCells = False
Beigt ar

Lietojot With-End With, pārliecinieties, vai katrs paziņojums sākas ar punktu.


Kā neļaut Microsoft Word atvērt failus tikai lasīšanas režīmā operētājsistēmā Windows

Kā neļaut Microsoft Word atvērt failus tikai lasīšanas režīmā operētājsistēmā Windows

Kā neļaut Microsoft Word atvērt failus tikai lasīšanas režīmā operētājsistēmā Windows Microsoft Word atver failus tikai lasīšanas režīmā, padarot tos neiespējamu rediģēt? Neuztraucieties, metodes ir norādītas zemāk

Kā novērst nepareizu Microsoft Word dokumentu drukāšanu

Kā novērst nepareizu Microsoft Word dokumentu drukāšanu

Kā labot kļūdas, drukājot nepareizus Microsoft Word dokumentus.Kļūdas Word dokumentu drukāšanā ar mainītiem fontiem, nekārtīgām rindkopām, trūkstoša teksta vai pazaudētu saturu ir diezgan izplatītas. Tomēr nevajag

Izdzēsiet pildspalvas un marķiera zīmējumus savos PowerPoint slaidos

Izdzēsiet pildspalvas un marķiera zīmējumus savos PowerPoint slaidos

Ja prezentācijas laikā esat izmantojis pildspalvu vai marķieri, lai zīmētu uz PowerPoint slaidiem, varat saglabāt zīmējumus nākamajai prezentācijai vai izdzēst tos, lai nākamajā reizē, kad to parādīsit, jūs sāktu ar tīriem PowerPoint slaidiem. Izpildiet šos norādījumus, lai dzēstu pildspalvas un marķiera zīmējumus: Līniju dzēšana pa vienai […]

Veidojiet bibliotēkas saturu programmā SharePoint 2010

Veidojiet bibliotēkas saturu programmā SharePoint 2010

Stilu bibliotēkā ir CSS faili, paplašināmās stila lapu valodas (XSL) faili un attēli, ko izmanto iepriekš definētas šablona lapas, lapu izkārtojumi un vadīklas programmā SharePoint 2010. Lai atrastu CSS failus publicēšanas vietnes stilu bibliotēkā: izvēlieties Vietnes darbības → Skatīt Viss vietnes saturs. Tiek parādīts vietnes saturs. Stila bibliotēka atrodas […]

Formatējiet skaitļus tūkstošos un miljonos Excel pārskatos

Formatējiet skaitļus tūkstošos un miljonos Excel pārskatos

Nepārsedziet savu auditoriju ar milzīgiem skaitļiem. Programmā Microsoft Excel varat uzlabot informācijas paneļu un pārskatu lasāmību, formatējot skaitļus tā, lai tie tiktu rādīti tūkstošos vai miljonos.

Kā koplietot un sekot līdzi SharePoint vietnēm

Kā koplietot un sekot līdzi SharePoint vietnēm

Uzziniet, kā izmantot SharePoints sociālo tīklu rīkus, kas ļauj indivīdiem un grupām sazināties, sadarboties, koplietot un sazināties.

Kā programmā Excel konvertēt datumus Juliana formātos

Kā programmā Excel konvertēt datumus Juliana formātos

Jūlija datumi ražošanas vidēs bieži tiek izmantoti kā laikspiedols un ātra atsauce partijas numuram. Šāda veida datuma kodēšana ļauj mazumtirgotājiem, patērētājiem un pakalpojumu aģentiem noteikt produkta izgatavošanas laiku un līdz ar to arī produkta vecumu. Jūlija datumi tiek izmantoti arī programmēšanā, militārajā jomā un astronomijā. Savādāk […]

Kā izveidot Access Web App

Kā izveidot Access Web App

Programmā Access 2016 varat izveidot tīmekļa lietotni. Kas tad vispār ir tīmekļa lietotne? Tīmeklis nozīmē, ka tas ir tiešsaistē, un lietotne ir tikai “lietojumprogrammas” saīsinājums. Pielāgota tīmekļa lietotne ir tiešsaistes datu bāzes lietojumprogramma, kurai var piekļūt no mākoņa, izmantojot pārlūkprogrammu. Jūs veidojat un uzturat tīmekļa lietotni darbvirsmas versijā […]

Ātrās palaišanas josla programmā SharePoint 2010

Ātrās palaišanas josla programmā SharePoint 2010

Lielākā daļa SharePoint 2010 lapu ātrās palaišanas joslā lapas kreisajā pusē parāda navigācijas saišu sarakstu. Ātrās palaišanas joslā tiek rādītas saites uz piedāvāto vietņu saturu, piemēram, sarakstiem, bibliotēkām, vietnēm un publicēšanas lapām. Ātrās palaišanas joslā ir divas ļoti svarīgas saites: Visa vietnes satura saite: […]

Ko nozīmē risinātāja kļūdu ziņojumi programmā Excel?

Ko nozīmē risinātāja kļūdu ziņojumi programmā Excel?

Vienkāršām problēmām risinātājs programmā Excel parasti ātri atrod optimālās Risinātāja mainīgā vērtības mērķa funkcijai. Taču dažos gadījumos Solver ir grūti atrast Solver mainīgā vērtības, kas optimizē mērķa funkciju. Šādos gadījumos Solver parasti parāda ziņojumu vai kļūdas ziņojumu, kurā aprakstīta vai apspriesta problēma, ko […]