VBA - Deschiderea și utilizarea Editorului Visual Basic (VBE) în Excel

Acest tutorial vă va arăta cum să deschideți și să programați în Editorul Visual Basic în VBA.

Deschiderea Editorului Visual Basic

Există câteva modalități de a accesa Editorul Visual Basic (VBE) în Excel.

presa Alt + F11 pe tastatură.

SAU

Clic Vizualizare> Macro> Vizualizare macro. De aici poți Editați | × o macro existentă sau Crea unul nou. Oricare dintre opțiuni deschide Editorul VB.

SAU

Dezvoltator> Visual Basic

Notă: dacă nu vedeți panglica pentru dezvoltatori, va trebui să o activați.

Pentru a activa panglica pentru dezvoltatori

Faceți clic pe Fişier fila din Panglică și mergeți la Opțiuni. În Personalizați panglica opțiuni, bifați Dezvoltator Caseta de bifat. Aceasta este dezactivată în mod implicit, așa că va trebui să o porniți pentru a vedea fila de pe panglică.

Clic Bine.

Fila Dezvoltator va apărea pe panglica principală. Faceți clic pe Visual Basic la începutul panglicii pentru a accesa Editorul Visual Basic.

Înțelegerea ecranului VBE

Ecranul VBE este prezentat în graficul de mai jos.

Exploratorul de proiecte

Project Explorer vă permite să vedeți cum este organizat proiectul în care lucrați. Puteți vedea câte module și formulare sunt stocate în proiect și puteți naviga între aceste module și formulare. Un modul este locul în care este stocat codul din registrul dvs. de lucru, când înregistrați o macrocomandă, acesta va fi stocat într-un modul standard - care implicit va fi numit „Modulul 1'.

Fiecare dintre foile de lucru din fișierul Excel are, de asemenea, un modul în spate, la fel ca și registrul de lucru în sine. Când introduceți o foaie nouă în registrul de lucru prin intermediul ecranului Excel principal, veți vedea un modul suplimentar de foaie care apare în Exploratorul de proiecte.

Faceți dublu clic pe un modul pentru a trece la codul pentru modulul respectiv.

De asemenea, puteți să faceți clic pe meniul Window din bara de instrumente și să selectați modulul de acolo pentru a vă deplasa la codul pentru modulul respectiv.

Tipul modulelor

Modulele sunt organizate în 5 tipuri diferite.

  1. Module standard - majoritatea codului dvs. va intra în acest tip de modul. Când înregistrați o macrocomandă, aceasta este introdusă într-un modul standard. Când scrieți o procedură generală pentru a fi utilizată în întregul registru de lucru, aceasta intră, de asemenea, în mod normal într-un modul standard.
  2. Module de registru de lucru - acest modul conține codul, este unic pentru registrul de lucru individual. Majoritatea codului din acest tip de module este cunoscut sub numele de EVENIMENTE. Un eveniment poate apărea atunci când un registru de lucru este deschis sau închis, de exemplu. Modulul poate conține, de asemenea, cod care este scris de dvs. și utilizat de evenimente.
  3. Module de foi - acest modul conține codul care este unic pentru acea foaie individuală. Ele pot apărea atunci când se face clic pe o foaie de exemplu ( Faceți clic pe Eveniment) sau când schimbați datele într-o celulă. Acest modul poate conține, de asemenea, cod care este scris de dvs. și apelat de Evenimente.
  4. Formulează module - acesta este modulul din spatele unui formular personalizat pe care îl puteți crea. De exemplu, puteți crea un formular pentru a păstra detaliile unei facturi, cu un buton OK, codul din spatele butonului (Evenimentul de clic) conține codul care va rula când se face clic pe buton.
  5. Module de clasă - acest modul este utilizat pentru a crea obiecte în timpul rulării. Modulul de clasă este utilizat de programatorii Advanced VBA și va fi acoperit într-o etapă ulterioară.

Inserarea unui modul sau formular în cod

Pentru a insera un nou modul în codul dvs., faceți clic pe Introduce din bara de meniu și faceți clic pe Modul.

Sau faceți clic pe Introduceți modulul buton pe care îl veți găsi pe panglica standard.

Pentru a insera un nou formular de utilizator în codul dvs., selectați UserForm opțiune.

Un nou formular de utilizator va apărea în Project Explorer și va fi afișat în fereastra de cod din dreapta.

De asemenea, puteți introduce un Modulul clasei

Un modul de clasă este utilizat pentru a insera obiecte în proiectul dvs. VBA.

Eliminarea unui modul sau a unui formular din Project Explorer

Faceți clic dreapta pe modulul sau formularul pe care doriți să îl eliminați pentru a afișa meniul contextual de clic dreapta.

Clic Elimina (în acest caz UserForm1… )

SAU

Faceți clic pe Fişier , apoi faceți clic pe Eliminați (UserForm1).

Va apărea o casetă de avertizare care vă întreabă dacă doriți să exportați formularul sau modulul înainte de al elimina. Exportarea formularului sau a modulului vă permite să îl salvați ca fișier individual pentru a fi utilizat într-un alt proiect Excel la un moment dat.

Cel mai adesea atunci când eliminați un modul sau îl formați, deoarece nu aveți nevoie de el, faceți clic pe Nu.

Fereastra Proprietăți

Veți vedea fereastra de proprietăți sub Project Explorer. Poate fi necesar să activați acest lucru.

presa F4 sau faceți clic Vedere, Fereastra Proprietăți.

Fereastra de proprietăți vă permite să vedeți proprietățile pentru modulul sau formularul selectat în Project Explorer. Când lucrați în module, puteți utiliza fereastra de proprietăți pentru a schimba numele modulului. Aceasta este singura proprietate disponibilă pentru un modul. Cu toate acestea, atunci când lucrați cu formulare, vor exista mult mai multe proprietăți disponibile, iar fereastra Proprietăți este apoi utilizată extensiv pentru a controla comportamentul formularelor și controalele conținute în formular.

Când înregistrați o macro, aceasta este introdusă automat într-un modul standard. Modulul se va numi „Modulul 1' iar orice cod conținut în acel modul este disponibil pentru a fi utilizat pe tot parcursul proiectului. Ar trebui să redenumiți modulul dvs. cu ceva semnificativ, care ar face codul dvs. ușor de găsit dacă ați adăuga mai multe module la proiect.

De asemenea, vă puteți redenumi formularele.

Dacă ați redenumit foaia în Excel, numele foii va apărea ca numele foii între paranteze după Foaia1.

Dacă doriți să schimbați numele modulului din spatele foii, îl puteți schimba în același mod în care schimbați modulul și numele formularului de utilizator - schimbând proprietatea Nume din fereastra Proprietăți.

V-ați săturat să căutați exemple de cod VBA? Încercați AutoMacro!

Fereastra Cod

Fereastra de cod vă arată procedurile secundare și funcțiile care sunt conținute în modulele dvs. - vă arată codul real. Când înregistrați o macro, va fi creată o procedură secundară pentru dvs. Dacă adăugați o tastă scurtă la macrocomandă, aceasta va apărea ca un comentariu în macrocomandă pentru a vă anunța care este cheia de comenzi rapide pe care ați atribuit-o macro.

În partea de sus a ferestrei de cod sunt două casete combinate. Acestea vă permit să vedeți ce obiect (dacă există) din cadrul modulului la care ați putea lucra și la ce procedură ați putea lucra.

În exemplul de mai sus, nu lucrăm la niciun obiect - astfel acesta este setat la general, dar lucrăm în cadrul procedurii Gridlines.

Dacă am avea mai multe proceduri în acest modul, am putea folosi caseta combinată de mai sus pentru a naviga la celelalte proceduri.

Înțelegerea Codului

Există 2 tipuri de proceduri - Subproceduri și Proceduri de funcționare.

Sub proceduri

Înregistratorul macro poate înregistra doar proceduri secundare. O procedură secundară face lucruri. Acestea efectuează acțiuni cum ar fi formatarea unui tabel sau crearea unui tabel pivot sau, în exemplul liniei de grilă, schimbarea setărilor de vizualizare a ferestrei active. Majoritatea procedurilor scrise sunt subproceduri. Toate macrocomenzile sunt proceduri secundare.

O procedură secundară începe cu a Sub declarație și se încheie cu un Sfârșitul Sub afirmație. Numele procedurii este întotdeauna urmat de paranteze.

123 Sub HideGridLines ()ActiveWindow.DisplayGridlines = FalsSfârșitul Sub

Proceduri de funcționare

O procedură funcțională returnează o valoare. Această valoare poate fi o singură valoare, o matrice, o gamă de celule sau un obiect. Funcțiile efectuează de obicei un anumit tip de calcul. Funcțiile din Excel pot fi utilizate cu Expertul de funcții sau pot fi apelate din Sub Proceduri.

123 Funcția Kilos (lire ca dublu)Kilos = (lire sterline / 2,2)Funcția de sfârșit

Această funcție ar putea fi utilizată în caseta de dialog Inserare funcție din Excel pentru a converti lire în kilograme.

Crearea unei noi proceduri

Înainte de a crea noua procedură, asigurați-vă că vă aflați în modulul în care doriți să stocați procedura. Puteți crea o nouă procedură făcând clic pe meniul Insert, Procedură;

sau puteți face clic pe pictograma de pe bara de instrumente

Va apărea următoarea casetă de dialog

  1. Tastați numele noii proceduri în caseta de nume - aceasta trebuie să înceapă cu o literă a alfabetului și poate conține litere și cifre și să aibă maximum 64 de caractere.
  2. Puteți avea un Subprocedură, A Procedura de funcționare sau a Proprietate procedură. (Proprietățile sunt utilizate în module de clasă și setează proprietăți pentru controalele ActiveX pe care le-ați creat).
  3. Puteți face sfera de aplicare a procedurii Public sau Privat. Dacă procedura este publică (implicită), atunci poate fi utilizată de toate modulele din proiect, în timp ce dacă procedura este privată, aceasta va putea fi utilizată doar de acest modul.
  4. Puteți declara variabile locale în această procedură ca Statici (acest lucru este legat de Scopul variabilei și face publică o variabilă la nivel de procedură locală pentru întregul modul). Nu vom folosi această opțiune.

După ce ați completat toate detaliile relevante, faceți clic pe Bine.

Apoi introduceți codul între instrucțiunile Sub și End Sub.

ALTERNATIV - puteți introduce instrucțiunile Sub și End Sub în modulul dvs. exact așa cum apare mai sus. Nu este nevoie să puneți cuvântul public în fața cuvântului sub - dacă acest cuvânt este omis, toate procedurile din modul sunt presupuse automat ca fiind publice.

Apoi tastați Sub și apoi numele procedurii dvs. urmat de paranteză.

adică:

1 Subtest ()

The Sfârșitul Sub declarația va apărea automat.

Programare VBA | Generatorul de coduri funcționează pentru dvs.!

Scrierea unui cod ușor de înțeles și de navigat

Adăugarea de comentarii

Obișnuiește să introduci comentarii în codul tău pentru a-ți reaminti mai târziu funcționalitatea codului.

Puteți insera un comentariu în codul dvs., dar tastând un apostrof pe tastatură sau puteți activa bara de instrumente Editare și puteți utiliza butonul de comentariu care apare pe bara de instrumente respectivă.

Faceți clic dreapta pe barele de instrumente.

Selectați Editați | ×.

Faceți clic pe butonul de comentariu pentru a insera un comentariu în codul dvs.

NOTĂ: De obicei, utilizați butonul de blocare a comentariilor numai atunci când aveți câteva linii de cod pe care doriți să le comentați (și să nu le ștergeți). Este mai ușor pentru un singur comentariu să folosească un apostrof.

Indentare

Un obicei bun pentru a intra este să vă indentați codul, ceea ce face mai ușor să citiți codul și să vedeți diferitele părți ale acestuia.

Pot exista mai multe niveluri de indentare, în funcție de logica codului dvs.

UpperCase vs LowerCase

VBA reglează toate codurile în cazurile corespunzătoare, deci dacă tastați ALL IN MAJUSCU sau toate cu litere mici, acesta va reajusta codul dvs. pentru a fi în cazul corect!

Programare VBA | Generatorul de coduri funcționează pentru dvs.!

Completare automată

Când vă ajustați codul, veți observa că VBA încearcă să vă ajute sugerând codul pe care îl puteți introduce. Aceasta este cunoscută sub numele de Completare automată.

Eroare de captare și depanare

Există 4 tipuri de erori care pot apărea atunci când scrieți codul VBA - erori de sintaxă, erori de compilare, erori de execuție și erori logice.

Erori de sintaxă

Acestea apar atunci când scrieți codul incorect. Acest lucru este în mare măsură împiedicat de VBA prin activarea opțiunii de verificare a sintaxei. Acest lucru este activat în mod implicit, dar dacă este oprit, porniți-l accesând Instrumente, Opțiuni și faceți clic pe Verificare auto sintaxă.

Dacă tastați codul incorect (de exemplu, excluzând ceva care ar trebui să fie în cod), va apărea o casetă de mesaj în timp ce scrieți codul, oferindu-vă posibilitatea de a modifica codul.

Erori de compilare

Acestea apar atunci când lipsește ceva din cod care împiedică rularea codului. Eroarea nu apare atunci când scrieți codul, dar apare atunci când încercați să rulați codul.

Programare VBA | Generatorul de coduri funcționează pentru dvs.!

Erori de rulare

Acestea apar atunci când rulați codul, iar sintaxa și compilarea sunt corecte, dar se întâmplă altceva pentru a împiedica rularea corectă a codului.

În acest caz, Sheet4 nu există. Acest mesaj de eroare este mai util decât mesajele de eroare de compilare, deoarece vă oferă posibilitatea de a depana codul și de a vedea de ce nu funcționează.

Clic Depanare. Codul se va opri la eroare și va evidenția eroarea în galben, permițându-vă să corectați eroarea.

Modificați Foaia4 la Foaia2 (deoarece Foaia 2 există și Foaia 4 nu există).

presa F5 sau faceți clic pe Continua butonul de pe bara de instrumente.

Erori logice

Acestea sunt cele mai dificil de găsit. În cazul lor, codul este scris corect, dar logica reală a codului este defectă, deci este posibil să nu obțineți rezultatul dorit din cod. Pentru erorile logice, blocarea erorilor este esențială.

Există 2 tipuri de capcane de eroare

La eroare Accesați

Următorul cod este pentru a deschide caseta de dialog Deschidere fișier - ne va da o eroare dacă utilizatorul dă clic Anulare.

Când rulați codul, apare caseta de dialog Deschidere fișier.

Atunci când faceți clic pe anulare, va apărea eroarea.

Următorul blocaj de eroare va continua codul către funcția de ieșire a codului și va returna mesajul.

Aceasta folosește On Error GoTo pentru a ieși din funcție.

Când rulați codul și faceți clic pe anulare, va apărea caseta de mesaj.

La eroare Reluați în continuare

Dacă puneți La eroare Reluați în continuare Declarație în codul dvs., linia care conține eroarea va fi ignorată și codul va continua.

De exemplu, dacă utilizatorul dă clic pe Anulare în codul de mai jos, codul nu vă va da o eroare în timp de execuție, ci doar se va încheia fără ca codul să mai facă nimic.

Există momente în care acest lucru este foarte util, dar poate fi, de asemenea, foarte periculos în anumite circumstanțe, deoarece nu returnează un mesaj cu privire la motivele pentru care ați obținut o eroare.

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

wave wave wave wave wave