Takojšnje okno Excel VBA - 5 odličnih načinov za njegovo uporabo!

'Takojšnje okno' je lahko koristno orodje za uporabo pri delu z VBA v Excelu.

Takojšnje okno vam omogoča, da hitro delate, na primer:

  • Pridobite informacije o datotekah Excel (na primer število listov v delovnem zvezku ali ime delovnega zvezka)
  • Hitro pridobite informacije o Debug.Print
  • Zaženite vrstico kode v nekaj sekundah
  • Zaženite makro (ali pokličite funkcijo)
  • Pridobite informacije o spremenljivkah (ali nastavite vrednost ali spremenljivke)

Čeprav vam za delo z VBA v Excelu ni treba uporabljati takojšnjega okna, vas bo vedenje, kako ga dobro uporabiti, veliko bolj učinkovito.

V tej vadnici bom obravnaval vse, kar morate vedeti o neposrednem oknu in kako ga najbolje uporabiti (razloženo s primeri).

Začnimo!

Kaj je takojšnje okno v Excelu VBA?

Takojšnje okno je del urejevalnika VB, s katerim lahko naredite nekaj hitrih stvari.

Na primer, če imate delovni zvezek z nekaj skritimi delovnimi listi in želite hitro ugotoviti število vseh delovnih listov, lahko to storite v nekaj sekundah z oknom Takojšnje.

Takojšnje okno naredi veliko več (kot boste videli kasneje v tej vadnici). Najprej pa pomislimo na takojšnje okno kot orodje, ki vam bo pomagalo pospešiti delo v Excelu VBA.

Kje najti takojšnje okno?

Ko odprete Excel VB-Editor, boste morda že videli takojšnje okno kot del urejevalnika VB. In če tega še ne vidite, ga lahko preprosto prikažete.

Spodaj so navedeni koraki za odpiranje urejevalnika VB in prikaz neposrednega okna:

  1. Kliknite zavihek »Razvijalec« na Excelovem traku (če ne vidite zavihka razvijalca, kliknite tukaj, če želite izvedeti, kako ga dobiti)
  2. V skupini kod kliknite »Visual Basic«. S tem se odpre urejevalnik VB
  3. V urejevalniku VB v meniju kliknite možnost »Pogled«
  4. Kliknite na Takojšnje okno. Tako bo takojšnje okno prikazano v urejevalniku VB.

Če vam bližnjice bolj ustrezajo, je spodaj navedenih nekaj, da pospešite zgornje korake:

  • Če želite odpreti urejevalnik VB - ALT + F11 (to deluje, tudi če na traku nimate zavihka Razvijalec)
  • Če želite prikazati takojšnje okno - Control + G (uporabite to, da je urejevalnik VB odprt)

Primeri uporabe takojšnjega okna v Excelu VBA

Zdaj, ko veste, kje najdete takojšnje okno, poglejmo nekaj čudovitih primerov, kjer ga lahko uporabite pri delu z Excelom VBA.

Pridobite informacije o datotekah/delovnih zvezkih

'Takojšnje okno' je kraj, kjer lahko postavite vprašanja o delovnih zvezkih in vam bo takoj dal odgovor.

Recimo, da imate delovni zvezek in želite vedeti, koliko listov je v delovnem zvezku, lahko vnesete spodnjo kodo v neposredno okno in pritisnete tipko enter.

? ActiveWorkbook.Sheets.Count

To vam bo takoj povedalo skupno število listov v aktivnem delovnem zvezku.

To je lahko koristno, če imate delovni zvezek, ki ima veliko listov in ga ne morete šteti ročno (ali tega ne želite), ali če imate delovni zvezek, kjer so skriti listi in želite izvedeti skupno število šteti.

The? (vprašaj) naj bi se uporabil pred poizvedbo, da bo VBA razumel, da postavljate vprašanje. Če ne uporabite tega vprašaja, vam takojšnje okno ne bo dalo podrobnosti/odgovora.

To je zelo preprost primer, kjer vam takojšnje okno poda nekaj informacij in prihrani čas.

Spodaj je še nekaj primerov:

Če želite dobiti ime aktivnega delovnega zvezka

? ActiveWorkbook.Name

Če želite dobiti ime aktivnega lista

? Activesheet.Name

Če želite dobiti pot delovnega zvezka (naslov, kamor je shranjen)

? ActiveWorkbook.Path

Če torej potrebujete nekaj o predmetu (na primer delovni zvezek, liste, grafikone, oblike, obseg itd.), Lahko za takojšnje pridobivanje teh informacij uporabite takojšnje okno.

Pridobite informacije o Debug.Print

V Excelu VBA se Debug.Print za prikaz vrednosti spremenljivke takoj prikaže v neposrednem oknu.

Spodnja koda bi na primer v neposrednem oknu takoj pokazala sporočilo »Dobro jutro«.

Sub DisplayMessage () Debug.Print "Good Morning" End Sub

Z vrstico Debug.Print v kodi lahko hitro vnesete nekaj podatkov v takojšnje okno ali razhrostite kodo.

Če želite na primer dobiti imena vseh listov v delovnem zvezku, lahko uporabite spodnjo kodo:

Sub GetSheetNames () Za vsak sh v ActiveWorkbook.Sheets Debug.Natisni sh.Name Naslednji sh End Sub

Zgornja koda gre skozi vsak list v aktivnem delovnem zvezku in v neposrednem oknu poda ime.

Debug.Print je uporabna tehnika za odpravljanje napak v kodi. Če na primer izvajate zanko in želite videti, kolikokrat je bila zanka izvedena, lahko preprosto postavite vrstico Debug.Print, ki preprosto prikazuje naraščajoče številke, ko teče vsaka zanka.

Če uporabljate Odpravljanje napak če želite odpraviti napako v kodi, jo odstranite, ko končate.

Zaženite makro (ali funkcijo)

Čeprav obstajajo različni načini za zagon makra v Excelu, je eden od hitrih načinov uporaba neposrednega okna.

Če želite zagnati makro, morate samo vnesti ime makra v neposredno okno in pritisniti tipko enter (kazalec mora biti na koncu imena makra, da bo to delovalo).

Spodaj je primer, ko takoj, ko vnesete ime makra v neposredno okno, zažene kodo (kjer koda prikaže sporočilo »Dobro jutro« v neposrednem oknu).

To je lahko koristno, če imate kodo in želite preveriti, ali deluje po pričakovanjih ali ne. V kodo imate lahko eno ali več vrstic Debug.Print in zaženite makro iz neposrednega okna.

Takoj vam bo pokazal vrednosti v neposrednem oknu in lahko preverite, ali vse deluje v redu ali ne.

Takojšnje okno lahko uporabite tudi za izvajanje funkcij po meri.

V spodnjem primeru je na primer ustvarjena funkcija za preverjanje, ali je število sodo ali liho. To funkcijo lahko zaženete iz neposrednega okna tako, da vnesete funkcijo z zahtevanim argumentom. V tem primeru morate uporabiti vprašaj, saj zahtevate, da ne vrne vrednosti, shranjene v funkciji.

Izvedite vrstico kode (ali več vrstic kode)

S takojšnjim oknom lahko zaženete tudi vrstico kode (ali več vrstic kod).

Najboljši del tega je, da lahko preprosto odprete takojšnje okno, zaženete kodo in zaprete (za razliko od makra, ki ga morate vstaviti v okno modula in nato izvesti).

Primer uporabe, kjer je to lahko koristno, je, če želite hitro razkriti vse liste v delovnem zvezku.

Spodaj je koda, ki jo lahko postavite v neposredno okno, da razkrijete vse liste v delovnem zvezku. Kazalec postavite na konec vrstice in takoj, ko pritisnete tipko enter, se bodo razkrili vsi listi.

Za vsak list v tem delovnem zvezku. List: Sheet.Visible = True: Naslednji list

Upoštevajte, da čeprav je videti kot ena vrstica kode, je sestavljena iz treh delov.

Vsak del je ločen z: (dvopičje), ki deluje kot prelom vrstice. To vam omogoča, da uporabite zanko For Next v neposrednem oknu za pregled vsakega lista in spremenite vidno lastnost v TRUE (ki razkrije skrite liste).

Pridobite spremenljive vrednosti

Ko začnete ustvarjati zapletene kode VBA, bi se za delo morali zanašati na spremenljivke.

Spremenljivka je nekaj, kar ima vrednost in se lahko ta vrednost spremeni, ko se koda izvaja. Za preverjanje teh vrednosti spremenljivk lahko uporabite takojšnje okno.

Spodaj je preprosta koda, ki poda vsoto prvih 10 pozitivnih celih števil in prikaže rezultat v neposrednem oknu.

Sub AddFirstTenNumbers () Dim Var As Integer Dim i As Integer Dim k As Integer For i = 1 To 10 k = k + i Next i Debug.Natisni i, k End Sub

Takoj, ko zaženete to kodo, boste v neposrednem oknu videli spodnji rezultat. To vam takoj pove, da koda dobro deluje in daje pričakovani rezultat.

V primeru, da ne daje pričakovanih rezultatov, lahko kodo odpravite.

Med odpravljanjem napak v kodi veliko ljudi uporablja polje za sporočila. Čeprav deluje v redu, se mi zdi nekoliko vsiljiv, saj me popelje v delovni zvezek Excel in prikaže polje s sporočilom. Po drugi strani je uporaba neposrednega okna za odpravljanje napak veliko bolj gladka in me zadržuje v samem urejevalniku Visual Basic.

Opomba: Če delate s kompleksno kodo in imate več spremenljivk, ki jim morate slediti, je bolje uporabiti okno za ogled. Okno za ogled vam omogoča, da dodate spremenljivko, nato pa lahko vidite, kako se ta spremenljivka spreminja v realnem času (ali med korakom skozi kodo).

Pri odpravljanju napak nastavite vrednost spremenljivke

To je nekoliko naprednejša uporaba okna Takojšnje, vendar če ga uporabljate, lahko prihranite veliko časa pri odpravljanju napak v kodi.

Z neposrednim oknom lahko nastavite vrednost spremenljivke, medtem ko zaženete kodo v načinu za odpravljanje napak (kjer nastavite prelomno točko, tako da se koda ne izvede v celoti - vendar do določene vrstice).

Na primer, če imate zanko, ki deluje 10 -krat in želite preveriti, kaj se zgodi, ko zanka teče osmič, vam ni treba sedemkrat stopiti skozi zanko, da pridete do osme ponovitve. Lahko preprosto dodate prelomno točko pred zanko in spremenite spremenljivko zanke v 8. Zdaj, ko zaženete kodo, vam bo pokazalo, kaj se zgodi, ko se zanke zaženejo osmič.

To postane veliko bolj uporabno, ko pišete zapletene kode in želite odpraviti napake v določenih zankah.

Recimo, da imate kodo, kot je prikazano spodaj:

Sub UnhideSheets () For i = 1 To Worksheets.Count Debug.Natisni liste (i) .Namesti i i End Sub

Zgornja koda preprosto navaja imena listov vseh listov v delovnem zvezku v neposrednem oknu.

Če ne želite navesti imen vseh listov, ampak le listov po desetem listu, lahko postavite točko preloma v drugo vrstico zanke (tako, da se po tej vrstici ne izvede nič) in nato spremenite spremenljivka 'i' na 11.

Če želite spremeniti ime spremenljivke v neposrednem oknu, vnesite naslednjo vrstico:

i = 11

To bo zagotovilo, da se prvih 10 krat zanke ne upošteva, vrednost spremenljivke pa je nastavljena na 11.

Priključitev/odklepanje neposrednega okna

Takojšnje okno lahko priklopite v urejevalnik VB - kar pomeni, da ostane na enem mestu v urejevalniku VB in se z njim premika in meri.

Lahko ga tudi odklenete, kar pomeni, da je neodvisen od urejevalnika VB in ga lahko premaknete kot samostojno okno.

Spodaj je opisano, kako lahko spremenite nastavitve priklopa za neposredno okno:

  1. Kliknite možnost Orodja v meniju v urejevalniku VB
  2. Kliknite »Možnosti«
  3. V pogovornem oknu Možnosti kliknite zadnji zavihek - Priključitev
  4. Potrdite možnost Takojšnje okno, da se priklopi, in počistite polje, da ni mogoče priklopiti.
  5. Kliknite V redu

Če je vidno takojšnje okno, lahko tudi z desno tipko miške kliknete in spremenite lastnost, ki jo je mogoče pritrditi.

Zaklepanje pomeni, da bi takojšnje okno postalo del obstoječega okna, tako da bi se postavilo na določena mesta, na primer na levo od okna ali na dno. To omogoča, da se priklopljena okna premikajo in velikosti skupaj.

Takojšnje okno se ne prikazuje - tukaj je nekaj načinov, kako ga dobiti

Razlogov za to je lahko več.

Najpogostejši razlog, da ne vidite takojšnjega okna, je, da ni vidno. Morda ni privzeto viden, da se prikaže, morate v meniju odpreti možnost Pogled in klikniti možnost Takojšnje okno. Tako boste prepričani, da je viden v urejevalniku VB.

Za prikaz takojšnjega okna lahko uporabite tudi tipkovnico Control + G. Uporabite to bližnjico na tipkovnici, medtem ko ste v urejevalniku VB.

Drugi razlog, da ne vidite neposrednega okna, je, da je bilo zmanjšano, tako zaprto, da ga ne vidite (kot je opisano tukaj). Na hitro preglejte in preverite, ali vidite, da se nekje skriva majhen/rdeč kvadrat. Kazalec miške lahko premaknete nad njo in videli boste možnost spreminjanja njene velikosti.

Če neposrednega okna sploh ne vidite, je nekaj, kar je uspelo mnogim ljudem (to se pogosto zgodi zaradi sprememb ločljivosti zaslona):

  1. Odprite urejevalnik VB
  2. Pritisnite Ctrl-G, da se osredotočite na takojšnje okno (ali kliknite možnost Pogled v meniju in nato kliknite takojšnje okno)
  3. Držite tipko ALT in nato pritisnite preslednico. To bo prikazalo spustne možnosti za takojšnje okno.
  4. Pritisnite M (za premik)
  5. Za premikanje okna uporabite puščične tipke
  6. Ko ugotovite, kje je, ga povečajte

To sem dobil s foruma tukaj in tudi opazil, da je isto predlagano kot rešitev, da se takojšnje okno VBA ne prikaže.

Druga stvar, ki jo lahko poskusite, je, da takojšnje okno ni mogoče odkleniti (pojdite na Orodja -> Možnosti -> Priključitev in počistite možnost neposrednega okna). To je nekaterim uspelo.

Morda vam bodo všeč tudi naslednji članki:

  • Excelov osebni makro delovni zvezek | Shranite in uporabite makre v vseh delovnih zvezkih
  • Zanke Excel VBA: Za naslednje, Do While, Do Until, Za vsako (s primeri)
  • Delo z delovnimi listi z uporabo Excel VBA
  • Ustvarjanje uporabniško določene funkcije (UDF) v Excelu VBA
wave wave wave wave wave