Fereastra Imediata Excel VBA - 5 moduri minunate de a o folosi!

„Fereastra imediată” poate fi un instrument util de utilizat atunci când lucrați cu VBA în Excel.

Fereastra Imediat vă permite să faceți rapid lucruri precum:

  • Obțineți informații despre fișierele Excel (cum ar fi numărul de foi într-un registru de lucru sau numele registrului de lucru)
  • Obțineți informații de depanare. Imprimați rapid
  • Rulați o linie de cod în câteva secunde
  • Rulați o macro (sau apelați o funcție)
  • Obțineți informații despre variabile (sau setați valoarea sau variabilele)

Deși nu este nevoie să utilizați fereastra imediată pentru a lucra cu VBA în Excel, știind cum să o utilizați bine vă poate face mult mai eficient.

În acest tutorial, voi acoperi tot ce trebuie să știți despre fereastra imediată și cum să o utilizați cel mai bine (explicată cu exemple).

Să începem!

Ce este o fereastră imediată în Excel VBA?

Fereastra imediată face parte din Editorul VB pe care îl puteți folosi pentru a face lucruri rapide.

Pentru a vă oferi un exemplu, dacă aveți un registru de lucru cu câteva foi de lucru ascunse și doriți să cunoașteți rapid numărul total de foi de lucru, puteți face acest lucru în câteva secunde cu fereastra Imediat.

Fereastra imediată face mult mai mult (așa cum veți vedea mai târziu în acest tutorial). Dar, pentru început, să ne gândim doar la fereastra imediată ca la un instrument care să vă ajute să vă accelerați munca în Excel VBA.

Unde să găsiți fereastra imediată?

Când deschideți Excel VB-Editor, este posibil să vedeți deja fereastra imediată ca parte a Editorului VB. Și dacă nu îl vedeți deja, îl puteți face cu ușurință să apară.

Mai jos sunt pașii pentru a deschide Editorul VB și a face vizibilă fereastra imediată:

  1. Faceți clic pe fila „Dezvoltator” din panglica Excel (dacă nu vedeți fila dezvoltator, faceți clic aici pentru a afla cum să o obțineți)
  2. În grupul de coduri, faceți clic pe „Visual Basic”. Aceasta va deschide Editorul VB
  3. În Editorul VB, faceți clic pe opțiunea „Vizualizare” din meniu
  4. Faceți clic pe fereastra imediată. Aceasta va face ca fereastra imediată să apară în Editorul VB.

Dacă sunteți mai confortabil cu comenzile rapide, mai jos sunt câteva pentru a accelera pașii de mai sus:

  • Pentru a deschide Editorul VB - ALT + F11 (acest lucru funcționează chiar dacă nu aveți fila Dezvoltator în panglică)
  • Pentru a afișa fereastra imediată - Control + G (folosiți-l pe acesta, editorul VB este deschis)

Exemple de utilizare a ferestrei imediate în Excel VBA

Acum, că știi unde să găsești fereastra imediată, să vedem câteva exemple minunate în care o poți folosi atunci când lucrezi cu Excel VBA.

Obțineți informații despre fișiere / registre de lucru

„Fereastra imediată” este un loc unde puteți pune întrebări despre registrele de lucru și vă va oferi răspunsul imediat.

De exemplu, să presupunem că aveți un registru de lucru și doriți să știți câte foi există în registrul de lucru, puteți tasta codul de mai jos în fereastra imediată și apăsați tasta Enter.

? ActiveWorkbook.Sheets.Count

Acest lucru vă va spune instantaneu numărul total de foi din registrul de lucru activ.

Acest lucru poate fi util atunci când aveți un registru de lucru care are o mulțime de foi și nu îl puteți număra manual (sau nu doriți) sau când aveți un registru de lucru în care există foi ascunse și doriți să știți totalul numara.

? (semnul întrebării) ar trebui să fie utilizat înainte de interogare, astfel încât VBA să poată înțelege că puneți o întrebare. Dacă nu utilizați acest semn de întrebare, fereastra imediată nu vă va oferi detaliile / răspunsul.

Acum, acesta este un exemplu foarte simplu, în care Immediate Window vă oferă informații și economisește timp.

Mai jos sunt câteva exemple:

Pentru a obține numele registrului de lucru activ

? ActiveWorkbook.Name

Pentru a obține numele foii active

? Activesheet.Name

Pentru a obține calea registrului de lucru (adresa în care este salvat)

? ActiveWorkbook.Path

Deci, dacă aveți nevoie de ceva despre un obiect (cum ar fi Cartea de lucru, foi, diagrame, forme, interval etc.), puteți utiliza fereastra imediată pentru a obține rapid aceste informații.

Obțineți informații despre depanare

În Excel VBA, Debug.Print este utilizat pentru a arăta instantaneu valoarea unei variabile în fereastra imediată.

De exemplu, codul de mai jos ar afișa instantaneu mesajul „Bună dimineața” în fereastra imediată.

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

Puteți utiliza linia Debug.Print din cod pentru a obține rapid câteva date în fereastra imediată sau pentru a depana codul.

De exemplu, dacă doriți să obțineți numele tuturor foilor dintr-un registru de lucru, puteți utiliza codul de mai jos:

Sub GetSheetNames () Pentru fiecare sh din ActiveWorkbook.Sheets Debug.Print sh.Name Următorul sh End Sub

Codul de mai sus trece prin fiecare foaie din registrul de lucru activ și dă numele în fereastra imediată.

Debug.Print este o tehnică utilă pentru depanarea codului. De exemplu, dacă rulați o buclă și doriți să vedeți de câte ori a fost rulată bucla, puteți plasa pur și simplu o linie Debug.Print care arată pur și simplu numerele incrementale când rulează fiecare buclă.

Dacă folosiți Debug.Print pentru a depana codul, nu uitați să îl eliminați când ați terminat.

Rulați o macro (sau o funcție)

Deși există diferite moduri de a rula o macro în Excel, una dintre modalitățile rapide este utilizarea ferestrei imediate.

Pentru a rula o macro, tot ce trebuie să faceți este să introduceți numele macro-ului în fereastra imediată și să apăsați tasta Enter (cursorul ar trebui să fie la sfârșitul numelui macro pentru ca acesta să funcționeze).

Mai jos este un exemplu în care, de îndată ce introduceți numele macro-ului în fereastra imediată, acesta rulează codul (unde codul afișează mesajul „Bună dimineața” în fereastra imediată).

Acest lucru poate fi util atunci când aveți un cod și doriți să verificați dacă funcționează conform așteptărilor sau nu. Puteți avea una sau mai multe linii Debug.Print în cod și rulați macrocomanda din fereastra imediată.

Acesta vă va arăta instantaneu valorile din fereastra imediată și puteți verifica dacă totul funcționează bine sau nu.

De asemenea, puteți utiliza fereastra imediată pentru a executa și funcții personalizate.

De exemplu, în exemplul de mai jos, se creează o funcție pentru a verifica dacă un număr este par sau impar. Puteți rula această funcție din fereastra imediată tastând funcția cu argumentul pe care îl ia. În acest caz, trebuie să folosiți semnul de întrebare, întrucât îi cereți să nu returneze o valoare stocată în funcție.

Executați o linie de cod (sau mai multe linii de cod)

Cu fereastra imediată, puteți rula, de asemenea, o linie de cod (sau mai multe linii de coduri).

Cea mai bună parte a acestui lucru este că puteți pur și simplu deschide fereastra imediată, rula codul și închide (spre deosebire de o macro pe care trebuie să o puneți într-o fereastră de modul și apoi să o executați).

Un caz de utilizare în care acest lucru poate fi util este atunci când doriți să ascundeți rapid toate foile din registrul de lucru.

Mai jos este codul pe care îl puteți plasa în fereastra imediată pentru a afișa toate foile din registrul de lucru. Plasați cursorul la sfârșitul liniei și de îndată ce apăsați tasta Enter, aceasta va afișa toate foile.

Pentru fiecare foaie din acest manual. Foi: Foaie.Vizibil = Adevărat: Foaia următoare

Rețineți că, deși acesta arată ca o singură linie de cod, este format din trei părți.

Fiecare parte este separată cu un: (două puncte), care acționează ca o întrerupere de linie. Acest lucru vă permite să utilizați bucla For Next din fereastra imediată pentru a parcurge fiecare foaie și a schimba proprietatea vizibilă la TRUE (care ascunde orice foaie ascunsă).

Obțineți valori variabile

Pe măsură ce începeți să creați coduri VBA complexe, va trebui să vă bazați pe variabile pentru a face treaba.

O variabilă este ceva care deține o valoare și această valoare se poate modifica atunci când rulează codul. Puteți utiliza o fereastră imediată pentru a verifica aceste valori variabile.

Mai jos este un cod simplu care oferă suma primelor 10 numere întregi pozitive și arată rezultatul în fereastra imediată.

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.Print i, k End Sub

De îndată ce rulați acest cod, veți vedea rezultatul de mai jos în fereastra imediată. Acest lucru vă spune instantaneu că codul funcționează bine și oferă rezultatul scontat.

În cazul în care nu oferă rezultatele scontate, puteți depana codul.

Mulți oameni folosesc o casetă de mesaje în timp ce depanează codul. Deși funcționează bine, mi se pare puțin intruziv, deoarece mă duce la registrul de lucru Excel și arată o casetă de mesaje. Pe de altă parte, utilizarea ferestrei imediate pentru depanare este mult mai ușoară și mă ține în editorul Visual Basic în sine.

Notă: dacă lucrați cu un cod complex și aveți mai multe variabile pe care trebuie să le urmăriți, este mai bine să utilizați o fereastră de vizionare. O fereastră de vizionare vă permite să adăugați o variabilă și apoi puteți vedea cum se schimbă acea variabilă în timp real (sau pe măsură ce parcurgeți codul).

Setați valoarea variabilă la depanare

Aceasta este o utilizare puțin avansată a ferestrei Imediate, dar dacă o utilizați, poate fi un economisitor de timp enorm atunci când depanați codul.

Puteți utiliza fereastra imediată pentru a seta valoarea unei variabile în timp ce rulați codul în modul de depanare (unde setați un punct de întrerupere, astfel încât codul să nu se execute complet - ci până la o anumită linie).

De exemplu, dacă aveți o buclă care rulează de 10 ori și doriți să verificați ce se întâmplă atunci când bucla rulează pentru a 8-a oară, nu este nevoie să parcurgeți bucla de șapte ori pentru a ajunge la a opta iterații. Puteți pur și simplu adăuga un punct de întrerupere înainte de buclă și puteți schimba variabila de buclă la 8. Acum, când rulați codul, acesta vă va arăta ce se întâmplă când buclele rulează pentru a 8-a oară.

Acest lucru devine mult mai util atunci când scrieți coduri complexe și doriți să depanați bucle specifice.

Să presupunem că aveți un cod așa cum se arată mai jos:

Sub UnhideSheets () For i = 1 To Worksheets.Count Debug.Print Sheets (i) .Name Next i End Sub

Codul de mai sus listează pur și simplu numele foilor tuturor foilor din registrul de lucru în fereastra imediată.

Dacă nu doriți să enumerați numele tuturor foilor, ci doar foilor după cea de-a 10-a foaie, puteți plasa un punct de întrerupere în a doua linie a buclei (astfel încât să nu se execute nimic după acea linie) și apoi să schimbați variabila „i” la 11.

Pentru a schimba numele variabilei în fereastra imediată, introduceți următoarea linie:

i = 11

Acest lucru vă va asigura că primele 10 ori ale buclei sunt ignorate și valoarea variabilă este setată la 11.

Andocarea / Decuplarea ferestrei imediate

Puteți avea fereastra imediată ancorată la Editorul VB - ceea ce înseamnă că rămâne la un loc în Editorul VB și se mișcă și mărește cu acesta.

Și îl puteți avea, de asemenea, deconectat, ceea ce înseamnă că este independent de Editorul VB și poate fi mutat ca o fereastră independentă.

Mai jos este modul în care puteți modifica setările de andocare pentru fereastra imediată:

  1. Faceți clic pe opțiunea Instrumente din meniul din Editorul VB
  2. Faceți clic pe „Opțiuni”
  3. În caseta de dialog Opțiuni, faceți clic pe ultima filă - Andocare
  4. Bifați opțiunea Fereastră imediată pentru a o face ancorabilă și debifați-o pentru a o dezactiva.
  5. Faceți clic pe OK

Alternativ, dacă fereastra imediată este vizibilă, puteți face clic dreapta și modifica proprietatea ancorabilă a acesteia.

Dockable înseamnă că fereastra imediată va deveni o parte a ferestrei existente, plasându-se în anumite locuri, cum ar fi stânga ferestrei sau în partea de jos. Aceasta permite ferestrelor ancorate să se miște și să se dimensioneze împreună.

Nu se afișează fereastra imediată - Iată câteva modalități de a o obține

Ar putea exista mai multe motive pentru care acest lucru se întâmplă.

Cel mai frecvent motiv pentru care nu vedeți o fereastră imediată este că nu a devenit vizibilă. Este posibil să nu fie vizibil în mod implicit și pentru ao face să apară, trebuie să accesați opțiunea Vizualizare din meniu și să faceți clic pe opțiunea Immediate Window. Acest lucru vă va asigura că este vizibil în Editorul VB.

De asemenea, puteți utiliza tastatura Control + G pentru a afișa fereastra imediată. Utilizați această comandă rapidă de la tastatură în timp ce vă aflați în Editorul VB.

Un alt motiv pentru care este posibil să nu vedeți fereastra imediată este că a fost redusă la minimum și este acum atât de închisă încât nu o puteți vedea (așa cum a fost raportat aici). Doar faceți o scanare rapidă și verificați dacă vedeți un pătrat mic albastru / roșu care se ascunde undeva. Puteți trece cursorul peste el și veți vedea o opțiune de redimensionare.

Dacă nu puteți vedea deloc fereastra imediată, iată ceva care a funcționat pentru mulți oameni (acest lucru se întâmplă adesea din cauza modificărilor rezoluției ecranului):

  1. Deschideți Editorul VB
  2. Apăsați Ctrl-G pentru a focaliza fereastra imediată (sau faceți clic pe opțiunea Vizualizare din meniu și apoi faceți clic pe fereastra imediată)
  3. Țineți apăsată tasta ALT și apoi apăsați tasta barei de spațiu. Aceasta va afișa opțiunile derulante pentru fereastra imediată.
  4. Apăsați M (pentru Mutare)
  5. Folosiți tastele săgeată pentru a muta fereastra
  6. Odată ce vă dați seama unde este, faceți-o mai mare

Am primit acest lucru de la un forum de aici și am observat, de asemenea, aceeași ființă sugerată ca o soluție pentru ca fereastra imediată VBA să nu apară.

Un alt lucru pe care îl puteți încerca este să faceți fereastra imediată nedockabilă (accesați Instrumente -> Opțiuni -> Andocare și debifați opțiunea ferestrei imediate). Acest lucru a funcționat pentru unii oameni.

De asemenea, vă pot plăcea următoarele articole:

  • Caiet de lucru personal Macro Excel | Salvați și utilizați macrocomenzi în toate registrele de lucru
  • Bucle Excel VBA: pentru următorul, faceți în timp, faceți până, pentru fiecare (cu exemple)
  • Lucrul cu foi de lucru folosind Excel VBA
  • Crearea unei funcții definite de utilizator (UDF) în Excel VBA

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave