Utilizarea obiectului de registru în Excel VBA (Deschidere, Închidere, Salvare, Setare)

În acest tutorial, voi acoperi modul de lucru cu registrele de lucru în Excel folosind VBA.

În Excel, un „Caiet de lucru” este un obiect care face parte din colecția „Cărți de lucru”. În cadrul unui registru de lucru, aveți diferite obiecte, cum ar fi foi de lucru, foi de diagrame, celule și intervale, obiecte de diagrame, forme etc.

Cu VBA, puteți face o mulțime de lucruri cu un obiect de registru de lucru - cum ar fi deschiderea unui registru de lucru specific, salvarea și închiderea registrelor de lucru, crearea de registre noi, schimbarea proprietăților registrului de lucru etc.

Asadar, haideti sa începem.

Toate codurile pe care le menționez în acest tutorial trebuie să fie plasate în Editorul Visual Basic. Accesați secțiunea „Unde se pune codul VBA” pentru a afla cum funcționează.

Dacă sunteți interesat să învățați VBA într-un mod ușor, consultați Instruire online VBA Excel.

Referința unui registru de lucru folosind VBA

Există diferite moduri de a face referire la un obiect de registru de lucru în VBA. Metoda pe care o alegeți va depinde de ceea ce doriți să faceți. În această secțiune, voi acoperi diferitele moduri de a face referire la un registru de lucru împreună cu câteva exemple de coduri.

Utilizarea numelor de registru

Dacă aveți numele exact al registrului de lucru la care doriți să faceți referire, îl puteți utiliza în cod.

Să începem cu un exemplu simplu.

Dacă aveți două registre de lucru deschise și doriți să activați registrul de lucru cu numele - Exemple.xlsx, puteți utiliza codul de mai jos:

Sub ActivateWorkbook () Workbooks ("Exemple.xlsx"). Activează End Sub

Rețineți că trebuie să utilizați numele fișierului împreună cu extensia dacă fișierul a fost salvat. Dacă nu a fost salvat, puteți utiliza numele fără extensia de fișier.

Dacă nu sunteți sigur ce nume să folosiți, luați ajutor din Project Explorer.

Dacă doriți să activați un registru de lucru și să selectați o celulă specifică într-o foaie de lucru din acel registru de lucru, trebuie să dați întreaga adresă a celulei (inclusiv registrul de lucru și numele foii de lucru).

Sub ActivateWorkbook () Workbooks ("Exemple.xlsx"). Foi de lucru ("Sheet1"). Activează Range ("A1"). Selectați End Sub

Codul de mai sus activează mai întâi Sheet1 în registrul de lucru Exemple.xlsx și apoi selectează celula A1 din foaie.

Veți vedea adesea un cod în care se face o referire la o foaie de lucru sau la o celulă / interval fără a face referire la registrul de lucru. Acest lucru se întâmplă atunci când vă referiți la foaia de lucru / intervalele din același registru de lucru care conține codul și este, de asemenea, registrul de lucru activ. Cu toate acestea, în unele cazuri, trebuie să specificați registrul de lucru pentru a vă asigura că funcționează codul (mai multe despre acest lucru în secțiunea ThisWorkbook).

Utilizarea numerelor index

De asemenea, puteți face referire la registrele de lucru pe baza numărului de index al acestora.

De exemplu, dacă aveți trei registre de lucru deschise, următorul cod vă va arăta numele celor trei registre de lucru într-o casetă de mesaje (una câte una).

Sub WorkbookName () MsgBox Workbooks (1) .Name MsgBox Workbooks (2) .Nume MsgBox Workbooks (3) .Name End Sub

Codul de mai sus folosește MsgBox - care este o funcție care arată o casetă de mesaj cu textul / valoarea specificată (care este numele registrului de lucru în acest caz).

Una dintre problemele pe care le am adesea cu utilizarea numerelor index cu registrele de lucru este că nu știi niciodată care este primul registru de lucru și care este al doilea și așa mai departe. Pentru a fi sigur, va trebui să rulați codul așa cum se arată mai sus sau ceva similar pentru a parcurge registrele de lucru deschise și a le cunoaște numărul de index.

Excel tratează registrul de lucru deschis mai întâi pentru a avea numărul index ca 1, iar următorul ca 2 și așa mai departe.

În ciuda acestui dezavantaj, utilizarea numerelor index poate fi utilă. De exemplu, dacă doriți să parcurgeți toate registrele de lucru deschise și să le salvați toate, puteți utiliza numerele index. În acest caz, deoarece doriți ca acest lucru să se întâmple cu toate registrele de lucru, nu sunteți îngrijorat de numerele lor individuale de index.

Codul de mai jos va parcurge toate registrele de lucru deschise și le închide pe toate, cu excepția registrului de lucru care are acest cod VBA.

Sub CloseWorkbooks () Dim WbCount As Integer WbCount = Workbooks.Count For i = WbCount To 1 Step -1 If Workbooks (i). Denumiți ThisWorkbook.Name Then Workbooks (i). Închideți End Dacă Next i End Sub

Codul de mai sus numără numărul de registre de lucru deschise și apoi parcurge toate registrele de lucru folosind bucla Pentru fiecare.

Folosește condiția IF pentru a verifica dacă numele registrului de lucru este același cu cel al registrului de lucru în care se execută codul.

Dacă nu este o potrivire, închide registrul de lucru și trece la următorul.

Rețineți că am rulat bucla de la WbCount la 1 cu un pas de -1. Acest lucru se face ca la fiecare buclă, numărul de registre de lucru deschise scade.

Acest manual de lucru este tratat în detaliu în secțiunea ulterioară.

Utilizarea ActiveWorkbook

ActiveWorkbook, după cum sugerează și numele, se referă la registrul de lucru activ.

Codul de mai jos vă va arăta numele registrului de lucru activ.

Sub ActiveWorkbookName () MsgBox ActiveWorkbook.Name End Sub

Când utilizați VBA pentru a activa un alt registru de lucru, partea ActiveWorkbook din VBA după aceea ar începe să se refere la registrul de lucru activat.

Iată un exemplu în acest sens.

Dacă aveți un registru de lucru activ și introduceți următorul cod în el și îl rulați, acesta va afișa mai întâi numele registrului de lucru care are codul și apoi numele Exemplelor.xlsx (care este activat de cod).

Sub ActiveWorkbookName () MsgBox ActiveWorkbook.Name Workbooks ("Exemple.xlsx"). Activați MsgBox ActiveWorkbook.Name End Sub

Rețineți că atunci când creați un nou registru de lucru utilizând VBA, acel registru de lucru nou creat devine automat registrul de lucru activ.

Folosind ThisWorkbook

Acest manual se referă la registrul de lucru în care se execută codul.

Fiecare registru de lucru ar avea un obiect ThisWorkbook ca parte a acestuia (vizibil în Project Explorer).

„ThisWorkbook” poate stoca macrocomenzi obișnuite (similare cu cele pe care le adăugăm module), precum și proceduri de evenimente. O procedură de eveniment este ceva care se declanșează pe baza unui eveniment - cum ar fi dublu clic pe o celulă, sau salvarea unui registru de lucru sau activarea unei foi de lucru.

Orice procedură de eveniment pe care o salvați în acest „ThisWorkbook” ar fi disponibilă în întregul registru de lucru, în comparație cu evenimentele la nivel de foaie care sunt limitate doar la foile specifice.

De exemplu, dacă faceți dublu clic pe obiectul ThisWorkbook din Project Explorer și copiați-lipiți codul de mai jos în acesta, acesta va afișa adresa celulei ori de câte ori faceți dublu clic pe oricare dintre celulele din întregul registru de lucru.

Private Sub Workbook_SheetBeforeDoubleClick (ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) MsgBox Target.Adress End Sub

În timp ce rolul principal al ThisWorkbook este de a stoca procedura evenimentului, îl puteți utiliza și pentru a vă referi la registrul de lucru în care se execută codul.

Codul de mai jos va returna numele registrului de lucru în care este executat codul.

Sub ThisWorkbookName () MsgBox ThisWorkbook.Name End Sub

Avantajul utilizării ThisWorkbook (peste ActiveWorkbook) este că se va referi la același registru de lucru (cel care are codul în el) în toate cazurile. Deci, dacă utilizați un cod VBA pentru a adăuga un nou registru de lucru, ActiveWorkbook-ul se va schimba, dar ThisWorkbook se va referi în continuare la cel care are codul.

Crearea unui nou obiect de registru de lucru

Următorul cod va crea un nou registru de lucru.

Sub CreateNewWorkbook () Workbooks.Add End Sub

Când adăugați un registru de lucru nou, acesta devine registrul de lucru activ.

Următorul cod va adăuga un nou registru de lucru și apoi vă va arăta numele acelui registru de lucru (care ar fi numele implicit de tip Book1).

Sub CreateNewWorkbook () Workbooks.Add MsgBox ActiveWorkbook.Name End Sub

Deschideți un registru de lucru folosind VBA

Puteți utiliza VBA pentru a deschide un registru de lucru specific atunci când cunoașteți calea fișierului registrului de lucru.

Codul de mai jos va deschide registrul de lucru - Exemple.xlsx care se află în folderul Documente din sistemul meu.

Sub OpenWorkbook () Workbooks.Open ("C: \ Users \ sumit \ Documents \ Example.xlsx") End Sub

În cazul în care fișierul există în folderul implicit, care este folderul în care VBA salvează fișiere noi în mod implicit, atunci puteți specifica doar numele registrului de lucru - fără întreaga cale.

Sub OpenWorkbook () Workbooks.Open ("Exemple.xlsx") End Sub

În cazul în care registrul de lucru pe care încercați să îl deschideți nu există, veți vedea o eroare.

Pentru a evita această eroare, puteți adăuga câteva linii în codul dvs. pentru a verifica mai întâi dacă fișierul există sau nu și dacă există, apoi încercați să îl deschideți.

Codul de mai jos va verifica locația fișierului și, dacă nu există, va afișa un mesaj personalizat (nu mesajul de eroare):

Sub OpenWorkbook () If Dir ("C: \ Users \ sumit \ Documents \ Example.xlsx") "" Then Workbooks.Open ("C: \ Users \ sumit \ Documents \ Example.xlsx") Else MsgBox "Fișierul nu Nu există "End If End Sub

De asemenea, puteți utiliza caseta de dialog Deschidere pentru a selecta fișierul pe care doriți să îl deschideți.

Sub OpenWorkbook () la eroare Reîncepeți următorul Dim FilePath ca șir FilePath = Application.GetOpenFilename Workbooks.Open (FilePath) End Sub

Codul de mai sus deschide caseta de dialog Deschidere. Când selectați un fișier pe care doriți să îl deschideți, acesta atribuie calea fișierului variabilei FilePath. Workbooks.Open apoi folosește calea fișierului pentru a deschide fișierul.

În cazul în care utilizatorul nu deschide un fișier și face clic pe butonul Anulare, FilePath devine False. Pentru a evita apariția unei erori în acest caz, am folosit declarația „On Error Resume Next”.

Legate de: Aflați totul despre gestionarea erorilor în Excel VBA

Salvarea unui registru de lucru

Pentru a salva registrul de lucru activ, utilizați codul de mai jos:

Sub SaveWorkbook () ActiveWorkbook.Save End Sub

Acest cod funcționează pentru registrele de lucru care au fost deja salvate anterior. De asemenea, deoarece registrul de lucru conține macro-ul de mai sus, dacă nu a fost salvat ca fișier .xlsm (sau .xls), veți pierde macro-ul când îl veți deschide în continuare.

Dacă salvați registrul de lucru pentru prima dată, acesta vă va afișa o solicitare așa cum se arată mai jos:

Când salvați pentru prima dată, este mai bine să utilizați opțiunea „Saveas”.

Codul de mai jos ar salva registrul de lucru activ ca fișier .xlsm în locația implicită (care este folderul de documente din sistemul meu).

Sub SaveWorkbook () ActiveWorkbook.SaveAs Filename: = "Test.xlsm", FileFormat: = xlOpenXMLWorkbookMacroEnabled End Sub

Dacă doriți ca fișierul să fie salvat într-o anumită locație, trebuie să menționați acest lucru în valoarea Numelui fișierului. Codul de mai jos salvează fișierul pe desktopul meu.

Sub SaveWorkbook () ActiveWorkbook.SaveAs Filename: = "C: \ Users \ sumit \ Desktop \ Test.xlsm", FileFormat: = xlOpenXMLWorkbookMacroEnabled End Sub

Dacă doriți ca utilizatorul să aibă opțiunea de a selecta locația pentru salvarea fișierului, puteți utiliza apelarea casetei de dialog Saveas. Codul de mai jos arată caseta de dialog Saveas și permite utilizatorului să selecteze locația în care ar trebui să fie salvat fișierul.

Sub SaveWorkbook () Dim FilePath As String FilePath = Application.GetSaveAsFilename ActiveWorkbook.SaveAs Filename: = FilePath & ".xlsm", FileFormat: = xlOpenXMLWorkbookMacroEnabled End Sub

Rețineți că, în loc să utilizați FileFormat: = xlOpenXMLWorkbookMacroEnabled, puteți utiliza și FileFormat: = 52, unde 52 este codul xlOpenXMLWorkbookMacroEnabled.

Salvarea tuturor registrelor de lucru deschise

Dacă aveți mai multe cărți de lucru deschise și doriți să salvați toate registrele de lucru, puteți utiliza codul de mai jos:

Sub SaveAllWorkbooks () Dim wb Ca registru de lucru pentru fiecare wb din Workbooks wb.Save Next wb End Sub

Cele de mai sus salvează toate registrele de lucru, inclusiv cele care nu au fost niciodată salvate. Registrele de lucru care nu au fost salvate anterior vor fi salvate în locația implicită.

Dacă doriți doar să salvați acele registre de lucru care au fost salvate anterior, puteți utiliza codul de mai jos:

Sub SaveAllWorkbooks () Dim wb Ca registru de lucru pentru fiecare wb din registrele de lucru If wb.Path "" Atunci wb.Save End if Next wb End Sub

Salvarea și închiderea tuturor registrelor de lucru

Dacă doriți să închideți toate registrele de lucru, cu excepția registrului de lucru care conține codul curent, puteți utiliza codul de mai jos:

Sub CloseandSaveWorkbooks () Dim wb Ca registru de lucru pentru fiecare wb din registrele de lucru If wb.Name ThisWorkbook.Name Then wb.Close SaveChanges: = True End If Next wb End Sub

Codul de mai sus ar închide toate registrele de lucru (cu excepția registrului de lucru care are codul - ThisWorkbook). În cazul în care există modificări în aceste registre de lucru, modificările vor fi salvate. În cazul în care există un registru de lucru care nu a fost niciodată salvat, acesta va afișa caseta de dialog Salvare ca.

Salvați o copie a registrului de lucru (cu Timestamp)

Când lucrez cu date complexe și tablou de bord în registrele de lucru Excel, adesea creez diferite versiuni ale registrelor mele de lucru. Acest lucru este util în cazul în care ceva nu merge bine cu registrul meu de lucru actual. Aș avea cel puțin o copie a acesteia salvată cu un alt nume (și aș pierde munca pe care am făcut-o numai după crearea unei copii).

Iată codul VBA care va crea o copie a registrului de lucru și îl va salva în locația specificată.

Sub CreateaCopyofWorkbook () ThisWorkbook.SaveCopyAs Filename: = "C: \ Users \ sumit \ Desktop \ BackupCopy.xlsm" End Sub

Codul de mai sus ar salva o copie a registrului dvs. de lucru de fiecare dată când rulați această macrocomandă.

În timp ce acest lucru funcționează excelent, m-aș simți mai confortabil dacă aș avea diferite copii salvate ori de câte ori rulez acest cod. Motivul pentru care acest lucru este important este că, dacă fac o greșeală involuntară și rulez această macrocomandă, aceasta va salva munca cu greșelile. Și nu aș avea acces la lucrare înainte să fac greșeala.

Pentru a rezolva astfel de situații, puteți utiliza codul de mai jos care salvează o nouă copie a lucrării de fiecare dată când o salvați. Și adaugă, de asemenea, o dată și o marcă de timp ca parte a numelui registrului de lucru. Acest lucru vă poate ajuta să urmăriți orice greșeală pe care ați făcut-o, deoarece nu pierdeți niciodată niciuna dintre copiile de rezervă create anterior.

Private Sub Workbook_BeforeSave (ByVal SaveAsUI As Boolean, Cancel As Boolean) ThisWorkbook.SaveCopyAs Filename: = "C: \ Users \ sumit \ Desktop \ BackupCopy" & Format (Now (), "dd-mm-aa-hh-mm-ss -AMPM ") &" .xlsm "End Sub

Codul de mai sus ar crea o copie de fiecare dată când executați această macrocomandă și ar adăuga o ștampilă de dată / oră la numele registrului de lucru.

Creați un nou registru de lucru pentru fiecare foaie de lucru

În unele cazuri, este posibil să aveți un registru de lucru care are mai multe foi de lucru și doriți să creați un registru de lucru pentru fiecare foaie de lucru.

Acesta ar putea fi cazul când aveți rapoarte lunare / trimestriale într-un singur registru de lucru și doriți să le împărțiți într-un singur registru de lucru pentru fiecare foaie de lucru.

Sau, dacă aveți rapoarte de departament și doriți să le împărțiți în registre de lucru individuale, astfel încât să puteți trimite aceste cărți de lucru individuale către șefii de departament.

Iată codul care va crea un registru de lucru pentru fiecare foaie de lucru, îi va da același nume cu cel al foii de lucru și îl va salva în folderul specificat.

Sub CreateWorkbookforWorksheets () Dim ws as Worksheet Dim wb As Workbook For Each ws In ThisWorkbook.Worksheets Set wb = Workbooks.Add ws.Copy Before: = wb.Sheets (1) Application.DisplayAlerts = False wb.Sheets (2). Șterge Application.DisplayAlerts = True wb.SaveAs "C: \ Users \ sumit \ Desktop \ Test \" & ws.Name & ".xlsx" wb.Închide Următorul ws End Sub

În codul de mai sus, am folosit două variabile „ws” și „wb”.

Codul trece prin fiecare foaie de lucru (folosind bucla For Each Next) și creează un registru de lucru pentru aceasta. De asemenea, folosește metoda de copiere a obiectului foii de lucru pentru a crea o copie a foii de lucru în noul registru de lucru.

Rețineți că am folosit instrucțiunea SET pentru a atribui variabila „wb” oricărui nou registru de lucru creat de cod.

Puteți utiliza această tehnică pentru a atribui un obiect de registru de lucru unei variabile. Acest lucru este prezentat în secțiunea următoare.

Atribuiți un obiect de registru de lucru unei variabile

În VBA, puteți atribui un obiect unei variabile și apoi utilizați variabila pentru a face referire la acel obiect.

De exemplu, în codul de mai jos, folosesc VBA pentru a adăuga un registru de lucru nou și apoi atribui acel registru variabilei wb. Pentru a face acest lucru, trebuie să folosesc declarația SET.

Odată ce am atribuit registrul de lucru variabilei, toate proprietățile registrului de lucru sunt puse la dispoziție și variabilei.

Sub AssigntoVariable () Dim wb As Workbook Set wb = Workbooks.Add wb.SaveAs Filename: = "C: \ Users \ sumit \ Desktop \ Example.xlsx" End Sub

Rețineți că primul pas din cod este să declarați „wb” ca variabilă de tip registru de lucru. Acest lucru spune VBA că această variabilă poate conține obiectul registrului de lucru.

Următoarea declarație folosește SET pentru a atribui variabila noului registru de lucru pe care îl adăugăm. Odată ce această atribuire este terminată, putem folosi variabila wb pentru a salva registrul de lucru (sau pentru a face orice altceva cu el).

Buclarea prin cărți de lucru deschise

Am văzut deja câteva exemple de coduri de mai sus care foloseau looping-ul în cod.

În această secțiune, voi explica diferite moduri de a parcurge registrele de lucru deschise folosind VBA.

Să presupunem că doriți să salvați și să închideți toate registrele de lucru deschise, cu excepția celui cu codul, apoi puteți utiliza codul de mai jos:

Sub CloseandSaveWorkbooks () Dim wb Ca registru de lucru pentru fiecare wb din registrele de lucru If wb.Name ThisWorkbook.Name Then wb.Close SaveChanges: = True End If Next wb End Sub

Codul de mai sus folosește bucla Pentru fiecare pentru a trece prin fiecare registru de lucru din colecția Cărți de lucru. Pentru a face acest lucru, trebuie mai întâi să declarăm „wb” ca variabilă de tip registru de lucru.

În fiecare ciclu de buclă, fiecare nume al registrului de lucru este analizat și, dacă nu se potrivește cu numele registrului de lucru care are codul, este închis după salvarea conținutului său.

Același lucru poate fi realizat și cu o buclă diferită, așa cum se arată mai jos:

Sub CloseWorkbooks () Dim WbCount As Integer WbCount = Workbooks.Count For i = WbCount To 1 Step -1 If Workbooks (i). Denumiți ThisWorkbook.Name Then Workbooks (i) .Închideți SaveChanges: = True End If Next i End Sub

Codul de mai sus folosește bucla For Next pentru a închide toate registrele de lucru, cu excepția celui care are codul în ea. În acest caz, nu este necesar să declarăm o variabilă a registrului de lucru, ci, în schimb, trebuie să numărăm numărul total de registre de lucru deschise. Când avem numărul, folosim bucla Pentru următorul pentru a parcurge fiecare registru de lucru. De asemenea, folosim numărul de index pentru a ne referi la registrele de lucru în acest caz.

Rețineți că în codul de mai sus, facem un loop de la WbCount la 1 cu Pasul -1. Acest lucru este necesar deoarece la fiecare buclă, registrul de lucru se închide și numărul de registre de lucru scade cu 1.

Eroare la lucrul cu obiectul de registru de lucru (Eroare în timp de execuție „9”)

Una dintre cele mai frecvente erori pe care le puteți întâlni atunci când lucrați cu registrele de lucru este - Eroare în timp de execuție ‘9’ - Indice în afara intervalului.

În general, erorile VBA nu sunt foarte informative și adesea îți lasă la îndemână să-ți dai seama ce a mers prost.

Iată câteva dintre posibilele motive care pot duce la această eroare:

  • Cartea de lucru pe care încercați să o accesați nu există. De exemplu, dacă încerc să accesez al cincilea registru de lucru folosind Workbooks (5) și există doar 4 registre de lucru deschise, atunci voi primi această eroare.
  • Dacă folosiți un nume greșit pentru a vă referi la registrul de lucru. De exemplu, dacă numele registrului dvs. de lucru este Example.xlsx și utilizați Example.xlsx. atunci vă va arăta această eroare.
  • Dacă nu ați salvat un registru de lucru și utilizați extensia, atunci veți primi această eroare. De exemplu, dacă numele registrului dvs. de lucru este Book1 și utilizați numele Book1.xlsx fără a-l salva, veți primi această eroare.
  • Cartea de lucru pe care încercați să o accesați este închisă.

Obțineți o listă cu toate registrele de lucru deschise

Dacă doriți să obțineți o listă cu toate registrele de lucru deschise în registrul de lucru curent (registrul de lucru în care executați codul), puteți utiliza codul de mai jos:

Sub GetWorkbookNames () Dim wbcount As Integer wbcount = Workbooks.Count ThisWorkbook.Worksheets.Add ActiveSheet.Range ("A1"). Activați pentru i = 1 To wbcount Range ("A1"). Offset (i - 1, 0). Valoare = Cărți de lucru (i) .Nume Următor i Sfârșit Sub

Codul de mai sus adaugă o nouă foaie de lucru și apoi listează numele tuturor registrelor de lucru deschise.

Dacă doriți să obțineți și calea fișierului lor, puteți utiliza codul de mai jos:

Sub GetWorkbookNames () Dim wbcount As Integer wbcount = Workbooks.Count ThisWorkbook.Worksheets.Add ActiveSheet.Range ("A1"). Activați pentru i = 1 To wbcount Range ("A1"). Offset (i - 1, 0). Valoare = Cărți de lucru (i) .Cărcare & "\" & Cărți de lucru (i) .Nume Următor i Sfârșit Sub

Deschideți registrul de lucru specificat făcând dublu clic pe celulă

Dacă aveți o listă de căi de fișiere pentru registrele de lucru Excel, puteți utiliza codul de mai jos pentru a face dublu clic pe celula cu calea fișierului și va deschide acel registru de lucru.

Private Sub Workbook_SheetBeforeDoubleClick (ByVal Sh as Object, ByVal Target As Range, Cancel As Boolean) Workbooks.Open Target.Value End Sub

Acest cod ar fi plasat în fereastra de cod ThisWorkbook.

Pentru a face acest lucru:

  • Faceți dublu clic pe obiectul ThisWorkbook din exploratorul de proiecte. Rețineți că obiectul ThisWorkbook ar trebui să fie în registrul de lucru în care doriți această funcționalitate.
  • Copiați și lipiți codul de mai sus.

Acum, dacă aveți calea exactă a fișierelor pe care doriți să le deschideți, puteți face acest lucru doar făcând dublu clic pe calea fișierului și VBA ar deschide instantaneu acel registru de lucru.

Unde să puneți codul VBA

Vă întrebați unde merge codul VBA în registrul dvs. de lucru Excel?

Excel are un backend VBA numit editor VBA. Trebuie să copiați și să lipiți codul în fereastra de cod a modulului VB Editor.

Iată pașii pentru a face acest lucru:

  1. Accesați fila Dezvoltator.
  2. Faceți clic pe opțiunea Visual Basic. Aceasta va deschide editorul VB în backend.
  3. În panoul Explorator de proiecte din Editorul VB, faceți clic dreapta pe orice obiect pentru registrul de lucru în care doriți să inserați codul. Dacă nu vedeți Project Explorer, accesați fila View și faceți clic pe Project Explorer.
  4. Accesați Insert și faceți clic pe Module. Aceasta va insera un obiect modul pentru registrul dvs. de lucru.
  5. Copiați și lipiți codul în fereastra modulului.

Vă pot plăcea, de asemenea, următoarele tutoriale Excel VBA:

  • Cum să înregistrați o macro în Excel.
  • Crearea unei funcții definite de utilizator în Excel.
  • Cum se creează și se utilizează programul de completare în Excel.
  • Cum să resuați macrocomenzile plasându-le în registrul de lucru pentru macrocomenzi personale.
  • Obțineți lista numelor de fișiere dintr-un folder în Excel (cu și fără VBA).
  • Cum se folosește funcția Excel VBA InStr (cu EXEMPLE practice).
  • Cum să sortați datele în Excel folosind VBA (Un ghid pas cu pas).

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

wave wave wave wave wave