VBA-lepotila

VBA: n lepotila on todella Windows-toiminto. Se on samanlainen kuin odotustoiminto VBA: ssa. Sitä käytetään hidastamaan tai keskeyttämään tai voimme sanoa, että tietyn koodin ajaminen pysäytetään tiettyyn aikaan. Lepotoiminto on kutsuttava VBA: ssa samalla, kun se ilmoitetaan koodissa. Kuinka teemme niin, opimme tämän päivän aiheesta.

Kuten edellä selitettiin, VBA Sleep on Windows-toiminto, ja se on läsnä Windowsin ytintietokannassa. Menetelmä lepotilan ilmoittamiseksi ja kutsumiseksi VBA: ssa on erilainen sekä 32- että 64-bittisissä käyttöjärjestelmissä. Se on pohjimmiltaan Windows API -toiminto.

VBA Sleep -toiminnon syntaksi on seuraava:

Sleep (aika Mili sekunnissa)

Joten jos meidän on hidastaa tai pysäytettävä koodi 1 sekunnin ajan, meidän on kirjoitettava koodi seuraavasti:

 Nuku 1000 

1000 on miljoonat sekunnit, joka vastaa yhtä sekuntia, ja se hidastaa koodia 1 sekunnin ajan. Jos haluamme hidastaa koodia viideksi sekunniksi, koodi on:

 Nuku 5000 

Ilmoitus nukkumistoiminnasta on seuraava:

 #Jos VBA7 Sitten 'Excel 2010 tai uudempi julkinen julistus PtrSafe Sub Sleep Lib "kernel32" (ByVal Milliseconds As LongPtr) #Else' Excel 2007 tai aikaisempi julkinen deklare Sub Sleep Lib "kernel32" (ByVal Milliseconds As Long) #End If 
Huomaa: Ennen nukkumistoiminnon käyttöä on mielessä yksi asia. Meidän on käytettävä tätä toimintoa moduuleissa, ei excel-kohteissa. VBA: n avulla varmistetaan, että kehittäjän välilehti on kytketty päälle Asetukset-osion Tiedostot-välilehdestä.

Kuinka käyttää Excel VBA-lepotoimintoa?

Opimme käyttämään VBA-lepotoimintoa muutamalla esimerkillä excelistä.

Voit ladata tämän VBA Sleep Excel -mallin täältä - VBA Sleep Excel Template

VBA-lepotoiminto - esimerkki # 1

Mitä aiomme tehdä tässä esimerkissä, me ilmoitamme käyttäjälle viestin, että makro pysähtyy viideksi sekunniksi. Ja tarkalleen viiden sekunnin kuluttua, haluamme toisen viestin, joka sanoo, että makro jatkuu.

Noudata alla olevia vaiheita käyttää lepotoimintoa Excel VBA: ssa:

Vaihe 1: Siirry Kehittäjä- välilehteen ja avaa VB Editor napsauttamalla Visual Basic -painiketta.

Vaihe 2: Kun VB Editor on avattu, napsauta Lisää välilehti ja napsauta sitten moduuleja lisätäksesi uusi moduuli.

Vaihe 3: Käytä nyt ilmoituslauseketta nukkumistoiminnon käyttämiseen. Koska käytän 64-bittistä Windows-käyttöjärjestelmää, aion käyttää sitä myös ilmoituslauseketta.

Koodi:

 Julkinen julistus PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Vaihe 4: Ilmoita nyt alatoiminto aloittaaksesi koodin kirjoittamisen.

Koodi:

 Julkinen julistus PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Alinäyte () Loppu Sub 

Vaihe 5: Käytä Mgsbox-toimintoa näyttääksesi viestin, että makro keskeytetään viideksi sekunniksi.

Koodi:

 Julkinen julistus PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Alinäyte () MsgBox "MAcro keskeytetään viideksi sekunniksi" End Sub 

Vaihe 6: Keskeytä makro viideksi sekunniksi nukkumistoiminnon avulla.

Koodi:

 Julkinen julistus PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Alinäyte () MsgBox "MAcro keskeytetään viideksi sekunniksi" Sleep 5000 End Sub 

Vaihe 7: Käytä nyt msgbox-toimintoa näyttääksesi viestin, että makro on palautettu.

Koodi:

 Julkinen julistus PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample () MsgBox "MAcro keskeytetään viideksi sekunniksi" Sleep 5000 MsgBox "Makro on jatkettu" End Sub 

Vaihe 8: Suorita koodi mukana toimitetulla suorituspainikkeella tai paina F5 nähdäksesi tulos. Näemme, että ensimmäinen viesti tulee näkyviin.

Vaihe 9: Kun napsautamme Ok ja odotamme viiden sekunnin, näemme uuden viestin.

Molempien viestien välillä oli tauko viidelle sekunnille.

VBA-lepotoiminto - esimerkki 2

Nyt mitä aiomme tehdä toisessa esimerkissä, on että minulla on neljä muuttujaa A, B, C ja D. Ensinnäkin haluan lisätä arvojen A ja B ja näyttää ne ja 5 sekunnin kuluttua haluan näyttää arvon A: n, B: n, C: n ja D: n lisääminen

Noudata alla olevia vaiheita käyttää lepotoimintoa Excel VBA: ssa:

Vaihe 1: Siirry Kehittäjä- välilehteen ja avaa VB Editor napsauttamalla Visual Basic -painiketta.

Vaihe 2: Kun VB Editor on avattu, napsauta Lisää välilehti ja napsauta sitten moduuleja lisätäksesi uusi moduuli.

Vaihe 3: Käytä nyt ilmoituslauseketta nukkumistoiminnon käyttämiseen. Koska käytän 64-bittistä Windows-käyttöjärjestelmää, aion käyttää sitä myös ilmoituslauseketta.

Koodi:

 Julkinen julistus PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Vaihe 4: Ilmoita nyt alatoiminto aloittaaksesi koodin kirjoittamisen.

Koodi:

 Julkinen julistus PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Alinäyte1 () Loppu Sub 

Vaihe 5: Ilmoita kuusi muuttujaa A, B, C, D, X ja Y arvojen tallentamiseksi.

Koodi:

 Julkinen julistus PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Alinäyte1 () himmentää A, B, C, D, X, Y kokonaislukuna loppuosa 

Vaihe 6: Anna satunnaiset arvot kohteille A, B, C ja D.

Koodi:

 Julkinen julistus PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Alinäyte1 () Dim A, B, C, D, X, Y kokonaislukuna A = 10 B = 15 C = 20 D = 25 End Sub 

Vaihe 7: Tallenna A + B-arvo X.

Koodi:

 Julkinen julistus PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Alinäyte1 () Dim A, B, C, D, X, Y kokonaislukuna A = 10 B = 15 C = 20 D = 25 X = A + B End Sub 

Vaihe 8: Näytä X : n arvo.

Koodi:

 Julkinen julistus PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Alinäyte1 () Dim A, B, C, D, X, Y kokonaislukuna A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X End Sub 

Vaihe 9: Käytä nyt nukkumistoimintoa taukoon viideksi sekunniksi.

Koodi:

 Julkinen julistus PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Alinäyte1 () Dim A, B, C, D, X, Y kokonaislukuna A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 End Sub 

Vaihe 10: Tallenna muuttujassa Y nyt arvo X + C + D ja näytä se.

Koodi:

 Julkinen julistus PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Alinäyte1 () Dim A, B, C, D, X, Y kokonaislukuna A = 10 B = 15 C = 20 D = 25 X = A + B MsgBox X Sleep 5000 Y = X + C + D MsgBox Y End Sub 

Vaihe 11: Suorita yllä oleva koodi mukana toimitetulla suorituspainikkeella tai painamalla F5-näppäintä ja katso tulos. Näemme, että ensimmäinen viesti näkyy muodossa.

Vaihe 12: Paina OK ja makro odottaa viiden sekunnin ajan ja näyttää seuraavan tuloksen.

VBA-lepotila - esimerkki 3

Tässä esimerkissä haluamme nimetä kaksi laskentataulukkoa arkki 1 ja taulukko 2 vastaavasti Anandiksi ja Araniksi. Mutta molempien välisen aikajakson tulisi olla viisi sekuntia. Periaatteessa haluamme, että makro keskeytyy, kun arkki 1 on nimetty uudelleen ja nimetty sitten arkki 2 uudelleen. Nykyisin molemmat arkit on nimetty seuraavasti:

Noudata alla olevia vaiheita käyttää lepotoimintoa Excel VBA: ssa:

Vaihe 1: Siirry Kehittäjä- välilehteen ja avaa VB Editor napsauttamalla Visual Basic -painiketta.

Vaihe 2: Kun VB Editor on avattu, napsauta Lisää välilehti ja napsauta sitten moduuleja lisätäksesi uusi moduuli.

Vaihe 3: Käytä nyt ilmoituslauseketta nukkumistoiminnon käyttämiseen. Koska käytän 64-bittistä Windows-käyttöjärjestelmää, aion käyttää sitä myös ilmoituslauseketta.

Koodi:

 Julkinen julistus PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) 

Vaihe 4: Ilmoita nyt alatoiminto aloittaaksesi koodin kirjoittamisen.

Koodi:

 Julkinen julistus PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Alinäyte2 () Loppu Sub 

Vaihe 5: Aktivoi taulukko 1 ja nimeä se seuraavalla koodilla:

Koodi:

 Julkinen julistus PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Laskentataulut ("Sheet1"). Aktivoi taulukot ("Sheet1"). Nimi = "Anand" MsgBox "Sheet 1 nimettiin uudelleen" End Sub " 

Vaihe 6: Käytä nyt nukkumistoimintoa käyttääksesi viiden sekunnin viivettä.

Koodi:

 Julkinen julistus PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () Laskentataulut ("Sheet1"). Aktivoi taulukot ("Sheet1"). Nimi = "Anand" MsgBox "Sheet 1 nimettiin uudelleen" Sleep 5000 End Sub "ksi 

Vaihe 7: Nimeä arkki 2 uudelleen seuraavalla koodilla.

Koodi:

 Julkinen julistus PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub Sample2 () -laskentataulukot ("Sheet1"). Aktivoi taulukot ("Sheet1"). Name = "Anand" MsgBox "Sheet 1 nimettiin uudelleen" Sleep 5000 Worksheets (" Sheet2 "). Aktivoi taulukot (" Sheet2 "). Nimi =" Aran "MsgBox" Sheet 2 nimettiin uudelleen "End Sub 

Vaihe 8: Suorita nyt koodi ja näemme, että ensimmäinen viesti tulee näkyviin.

Voimme myös tarkistaa, että arkki 1 on nimetty uudelleen.

Vaihe 9: Paina ok ja odota viisi sekuntia seuraavan viestin ja toisen arkin nimeämiseksi uudelleen.

Toinen arkki on myös nimetty uudelleen.

Muistettavat asiat

  • VBA Sleep on ikkunafunktio, joten käyttöä varten meidän on käytettävä ilmoituslausekkeita.
  • Erityyppisille käyttöjärjestelmille on olemassa erilaiset ilmoituslausekkeet.
  • Yksinkertaisesti VBA-lepotilan käyttö jäädyttää makron annetulle ajanjaksolle.
  • VBA-lepotoiminnolle annettu aikaparametri on millisekuntina.

Suositellut artikkelit

Tämä on opas VBA-lepotoimintoon. Täällä keskustellaan siitä, kuinka Excel VBA-lepotoimintoa voidaan käyttää, sekä käytännön esimerkkejä ja ladattavaa Excel-mallia. Voit myös käydä läpi muiden ehdottamiemme artikkeleidemme -

  1. VBA VLOOKUP -toiminto
  2. DCOUNT-funktio Excelissä
  3. VBA-kopiointi
  4. COMBIN-toiminto Excelissä

Luokka: