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

Sisällysluettelo

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. 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 loppuunsaattamiseksi.

Joskus kun kirjoitat koodia ja haluat testata koodin keston, ts. 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, että AJASTIN-funktio palaa, sekuntien kokonaismäärä on kulunut kuluvan päivän keskiyöstä. Kun kirjoitan tätä artikkelia, aika on Intiassa 13:50:45.

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ä, joka kului 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. Sekunneissa se on yhtä suuri kuin 50480,08, jonka antaa TIMER-toiminto.

Esimerkkejä

Esimerkki # 1 - Laske koodisi ottama kokonaisaika

Suoritamme nyt yksinkertaisen koodauksen testataksemme aikaa, jonka VBA tarvitsee menettelyn suorittamiseen. Olen kirjoittanut koodin, kuten alla olevassa kuvassa näkyy.

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ä lukee 3.058594. Tämän toiminnon antama tulos on sekunteina, ts. Tämän koodin ottama 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

Käytä yllä olevaa ja kirjoita koodisi koodin StartingTime = Timer jälkeen, mutta ennen koodia MsgBox Timer - StartingTime, eli vihreällä alueella, sinun on annettava koodi.

Selitys: Ensinnäkin muuttuja StartingTime = Timer 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, ts. "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.

Jos suoritan koodin, se antaa tämänkaltaisen tuloksen.

Joten koodin ottama kokonaisaika on 3 sekuntia.

Tämän koodin kauneus on hetki, jolloin se ylittää 60 sekuntia; se näyttää tuloksen muutamassa 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 ajan.
  • TIMER näyttää menneiden sekuntien kokonaismäärän nykyisestä päivämäärästä keskiyöhön.

Mielenkiintoisia artikkeleita...