VBA-ajastin | Esimerkkejä Excel VBA -ajastintoiminnon käytöstä

Excel VBA TIMER -toiminto

VBA-ajastin on sisäänrakennettu toiminto, jota käytetään antamaan meille sekuntien murto-arvo, se on erittäin hyödyllinen toiminto, jota käytetään joskus keskeyttämään kaikki käynnissä olevat koodisarjat tai jatkamaan niitä käyttäjän antaman ajan perusteella, ajastin on yksinkertaisesti käytetään lauseena VBA: ssa ajan syötöllä.

Yksinkertaisesti sanottuna, AJASTIN näyttää kuluneen päivän keskiyöstä kuluneiden sekuntien kokonaismäärän. Heti koodin yhdeltä riviltä voimme todella seurata koodin kuluttamaa aikaa alimenettelyssä määritetyn prosessin loppuun saattamiseksi.

Joskus kun kirjoitat koodia ja haluat testata koodin keston eli kuinka monta aikaa koodisi vie alimenettelyyn. Testaamalla koodisi todellisen keston voit tehdä koodistasi tehokkaan ja poistaa aikaa vievän prosessin poistamalla ei-toivotut tai pitkät koodit moduulistasi.

Kuinka käyttää TIMER-toimintoa VBA: ssa?

Kuten kerroin, AJASTIN-funktio palauttaa menneiden sekuntien kokonaismäärän nykyisen päivämäärän keskiyöstä. Kun kirjoitan tätä artikkelia, aika on 13:50:45 Intiassa.

Olen luonut makron nimen ja määrittänyt TIMER-arvon VBA-viestiruutuun.

Koodi:

 Ajastin_esimerkki1 () MsgBox-ajastimen loppu Alaosa 

Kun suoritin tämän koodin, sain tulokseksi 50480,08.

Tämä on sekuntien kokonaismäärä ohi tämän päivän keskiyöstä eli kello 00:00:00

Joten keskiyöstä 12 nykyiseen aikaan 14:01:20, yhteensä 14 tuntia 1 minuutti 20 sekuntia ohi. Muutamassa sekunnissa se on 50480,08, jonka antaa TIMER-toiminto.

Esimerkkejä

Voit ladata tämän VBA Timer Excel -mallin täältä - VBA Timer Excel -malli

Esimerkki # 1 - Laske koodisi ottama kokonaisaika

Suoritamme nyt yksinkertaisen koodauksen testataksemme aikaa, jonka VBA tarvitsee menettelyn suorittamiseen. Olen kirjoittanut koodin alla olevan kuvan mukaisesti.

Koodi:

 Sub Do_Until_Example1 () Dim ST yhtenäinen ST = ajastin Dim x niin pitkä x = 1 Do kunnes x = 100000 solua (x, 1). Arvo = xx = x + 1 silmukka MsgBox-ajastin - ST End Sub 

Jos suoritan tämän koodin nyt, se näyttää minulle VBA: n suorittamiseen kuluneen kokonaisajan.

Siinä sanotaan 3.058594, tämän toiminnon antama tulos on sekunteissa, ts. Tämän koodin kokonaisaika on 3,058 sekuntia.

Jotta voit käyttää koodia, olen kirjoittanut alla olevan koodin sinulle.

Koodi:

 Sub Timer_Example1 () Dim StartingTime Single StartingTime = Timer 'Syötä koodisi tähän' Syötä koodisi tähän 'Syötä koodisi tähän' Syötä koodisi tähän MsgBox Timer - StartingTime End Sub 

Käytä yllä olevaa ja kirjoita koodisi koodin jälkeen StartingTime = Timer, mutta ennen koodia MsgBox Timer - StartingTime eli vihreälle alueelle sinun on syötettävä koodi.

Selitys: Ensinnäkin muuttuja StartingTime = Ajastin tarkoittaa koodin suorittamisen ajan yhtä aikaa keskiyöstä koodin ajoaikaan kuluneeseen aikaan.

Ajastin - StartingTime: Se tarkoittaa koodin suorittamisen jälkeen, mikä on kulunut aika miinus aika, joka on kirjattu koodin alkuun muuttuvan alkamisajan kautta .

Tämä antaa eron aloitus- ja lopetusajan välillä ja palauttaa tuloksen.

Esimerkki # 2 - Näytä tulos oikeassa muodossa

Kuten olemme nähneet, toiminnon antama tulos on sekunteina, mutta ei tarkassa muodossa. Voimme kuitenkin soveltaa VBA-aikamuotoa lopputulokseen FORMAT-funktiolla.

Käytä alla olevaa koodia nähdäksesi tulos oikeassa muodossa eli "hh: mm: ss".

Olen käyttänyt FORMAT-toimintoa täällä. Tuloksen antaa (Ajastin - aloitusaika). Olen jakanut sen numerolla 86400 muuntamaan sen sekunneiksi aikamuotosääntöjen mukaan, sitten olen käyttänyt aikamuotoa tunnissa, minuutissa ja toisessa muodossa.

Nyt jos suoritan koodin, se antaa tällaisen tuloksen.

Joten koodin ottama kokonaisaika on 3 sekuntia.

Tämän koodin kauneus on se hetki, kun se ylittää 60 sekuntia, ja tulos näkyy minuutissa. Olen keskeyttänyt koodin käynnissä olevan minuutin (käyttäen Ctrl + Break) ja näen tuloksen.

Joten tämän koodin ottama kokonaisaika on nyt 1 minuutti 2 sekuntia.

Esimerkki # 3 - Vaihtoehtoinen koodi ajastimelle

AJASTIMELLE on vaihtoehto NOW () -toiminnon avulla. Alla on vaihtoehtoinen koodi.

Muistettavaa

  • AJASTIN-toiminto lepää arvon päivän lopussa eli klo 23.59.59.
  • NYT-toiminto palauttaa nykyisen päivämäärän ja kellonajan.
  • TIMER näyttää menneiden sekuntien kokonaismäärän nykyisestä päivämäärästä keskiyöhön.

$config[zx-auto] not found$config[zx-overlay] not found