Articles

Utilizarea obiectului registru de lucru în Excel VBA (Open, Close, Save, Set)

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

în Excel, un ‘registru de lucru’ este un obiect care face parte din colecția ‘registre de lucru’. Într-un registru de lucru, aveți diferite obiecte, cum ar fi foi de lucru, foi de diagramă, celule și intervale, obiecte de diagramă, forme etc.

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

să începem.

toate codurile pe care le menționez în acest tutorial trebuie plasate în Editorul Visual Basic. Du-te la ‘în cazul în care pentru a pune codul VBA’ secțiune pentru a ști cum funcționează.

Dacă sunteți interesat în procesul de învățare VBA calea cea mai ușoară, a verifica afară meu on-line de formare Excel VBA.

Acest Tutorial acoperă:

referirea la un registru de lucru folosind VBA

există diferite moduri de a se referi la un obiect registru de lucru în VBA. Metoda pe care o alegeți ar depinde de ceea ce doriți să obțineți făcut. Î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 registrelor de lucru

Dacă aveți numele exact al Registrului de lucru la care doriți să faceți referire, puteți utiliza numele din 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("Examples.xlsx").ActivateEnd 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ă utilizați, Luați ajutor de la Project Explorer.

obiectul foilor de lucru în Excel VBA - Nume fișier în Project explorer

Dacă doriți să activați un registru de lucru și să selectați o anumită celulă dintr-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("Examples.xlsx").Worksheets("Sheet1").ActivateRange("A1").SelectEnd Sub

codul de mai sus activează mai întâi Sheet1 în exemple.XLSX registru de lucru și apoi selectează celula A1 în foaie.

veți vedea adesea un cod în care se face o referință la o foaie de lucru sau la o celulă / interval fără a se 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 are codul în el ș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ă codul funcționează (mai multe despre acest lucru în secțiunea ThisWorkbook).

utilizarea numerelor de Index

puteți consulta, de asemenea, registrele de lucru pe baza numărului lor de index.

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

Sub WorkbookName()MsgBox Workbooks(1).NameMsgBox Workbooks(2).NameMsgBox Workbooks(3).NameEnd Sub

codul de mai sus folosește MsgBox – care este o funcție care afișează 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 de 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 cu bucla prin registrele de lucru deschise și să cunoașteți numărul lor de index.

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

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

codul de mai jos va trece prin toate registrele de lucru deschise și va închide toate, cu excepția registrului de lucru care are acest cod VBA.

Sub CloseWorkbooks()Dim WbCount As IntegerWbCount = Workbooks.CountFor i = WbCount To 1 Step -1If Workbooks(i).Name <> ThisWorkbook.Name ThenWorkbooks(i).CloseEnd IfNext iEnd Sub

codul de mai sus numără numărul de registre de lucru deschise și apoi trece prin toate registrele de lucru folosind pentru fiecare buclă.

utilizează 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 se potrivește, î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.

această carte de lucru este acoperită în detaliu în secțiunea ulterioară.

utilizarea ActiveWorkbook

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

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

Sub ActiveWorkbookName()MsgBox ActiveWorkbook.NameEnd Sub

când utilizați VBA pentru a activa un alt registru de lucru, partea ActiveWorkbook în VBA după care ar începe referindu-se 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.NameWorkbooks("Examples.xlsx").ActivateMsgBox ActiveWorkbook.NameEnd Sub

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

utilizarea ThisWorkbook

ThisWorkbook se referă la registrul de lucru în cazul în care codul este executat.

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

obiect registru de lucru în VBA - ThisWorkbook

‘ThisWorkbook’ poate stoca macrocomenzi regulate (similare cu cele pe care le add-in module), precum și procedurile de eveniment. O procedură de eveniment este ceva care este declanșat 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’ va 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 el, 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.AddressEnd Sub

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

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

Sub ThisWorkbookName()MsgBox ThisWorkbook.NameEnd Sub

beneficiul utilizării ThisWorkbook (peste ActiveWorkbook) este că s-ar 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 s-ar schimba, dar ThisWorkbook s-ar referi în continuare la cel care are codul.

crearea unui nou obiect registru de lucru

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

Sub CreateNewWorkbook()Workbooks.AddEnd 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 al tipului Book1).

Sub CreateNewWorkbook()Workbooks.AddMsgBox ActiveWorkbook.NameEnd 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 din registrul 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\Examples.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 ("Examples.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 la codul dvs. pentru a verifica mai întâi dacă fișierul există sau nu și dacă există, î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\Examples.xlsx") <> "" ThenWorkbooks.Open ("C:\Users\sumit\Documents\Examples.xlsx")ElseMsgBox "The file doesn't exist"End IfEnd 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()On Error Resume NextDim FilePath As StringFilePath = Application.GetOpenFilenameWorkbooks.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. Registre de lucru.Deschideți apoi utilizează 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 fals. Pentru a evita obținerea unei erori în acest caz, am folosit instrucțiunea ‘On Error Resume Next’.

Related: 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.SaveEnd Sub

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

dacă salvați registrul de lucru pentru prima dată, acesta vă va afișa un prompt așa cum se arată mai jos:

obiect registru de lucru în Vba - avertisment când salvați registrul de lucru pentru prima dată

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:=xlOpenXMLWorkbookMacroEnabledEnd 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 desktop-ul meu.

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

Dacă doriți ca utilizatorul să obțină opțiunea de a selecta locația pentru a salva fișierul, puteți utiliza apelați caseta de dialog Saveas. Codul de mai jos arată caseta de dialog Saveas și permite utilizatorului să selecteze locația în care fișierul ar trebui salvat.

Sub SaveWorkbook()Dim FilePath As StringFilePath = Application.GetSaveAsFilenameActiveWorkbook.SaveAs Filename:=FilePath & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabledEnd 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 registre de lucru deschise și doriți să salvați toate registrele de lucru, puteți utiliza codul de mai jos:

Sub SaveAllWorkbooks()Dim wb As WorkbookFor Each wb In Workbookswb.SaveNext wbEnd Sub

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

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

Sub SaveAllWorkbooks()Dim wb As WorkbookFor Each wb In WorkbooksIf wb.Path <> "" Thenwb.SaveEnd IfNext wbEnd 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 are codul curent în el, puteți utiliza codul de mai jos:

Sub CloseandSaveWorkbooks()Dim wb As WorkbookFor Each wb In WorkbooksIf wb.Name <> ThisWorkbook.Name Thenwb.Close SaveChanges:=TrueEnd IfNext wbEnd Sub

codul de mai sus ar închide toate registrele de lucru (cu excepția 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 marcaj de timp)

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

iată codul VBA care va crea o copie a registrului dvs. 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 de lucru de fiecare dată când executați această macrocomandă.

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

pentru a gestiona 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-yy-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 adăugați o ștampilă dată / oră la numele registrului de lucru.

crearea unui registru de lucru nou 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 înțelept și doriți să împartă aceste registre de lucru individuale, astfel încât să puteți trimite aceste registre de lucru individuale la ș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 WorksheetDim wb As WorkbookFor Each ws In ThisWorkbook.WorksheetsSet wb = Workbooks.Addws.Copy Before:=wb.Sheets(1)Application.DisplayAlerts = Falsewb.Sheets(2).DeleteApplication.DisplayAlerts = Truewb.SaveAs "C:\Users\sumit\Desktop\Test\" & ws.Name & ".xlsx"wb.CloseNext wsEnd Sub

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

codul trece prin fiecare foaie de lucru (folosind pentru fiecare buclă următoare) și creează un registru de lucru pentru aceasta. De asemenea, utilizează 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 registru de lucru nou creat de cod.

puteți utiliza această tehnică pentru a atribui un obiect din registrul de lucru unei variabile. Acest lucru este acoperit în secțiunea următoare.

atribuirea obiect registru de lucru la o variabilă

în VBA, puteți atribui un obiect la o variabilă, și apoi utilizați variabila pentru a se referi 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 de lucru variabilei wb. Pentru a face acest lucru, trebuie să folosesc instrucțiunea SET.

odată ce am atribuit registrul de lucru variabilei, toate proprietățile registrului de lucru sunt puse la dispoziția variabilei, de asemenea.

Sub AssigntoVariable()Dim wb As WorkbookSet wb = Workbooks.Addwb.SaveAs Filename:="C:\Users\sumit\Desktop\Examples.xlsx"End Sub

rețineți că primul pas în cod este să declarați ‘wb’ ca variabilă de tip registru de lucru. Acest lucru spune VBA că această variabilă poate deține obiectul registrul de lucru.

următoarea instrucțiune utilizează 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 acesta).

Looping prin registrele de lucru deschise

am văzut deja câteva exemple de coduri de mai sus care au folosit looping în cod.

în această secțiune, voi explica diferite moduri de a bucla prin 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 în el, atunci puteți utiliza codul de mai jos:

Sub CloseandSaveWorkbooks()Dim wb As WorkbookFor Each wb In WorkbooksIf wb.Name <> ThisWorkbook.Name Thenwb.Close SaveChanges:=TrueEnd IfNext wbEnd Sub

codul de mai sus folosește pentru fiecare buclă pentru a parcurge fiecare registru de lucru din colecția de registre 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 de registru de lucru este analizat și dacă nu se potrivește cu numele registrului de lucru care are codul, acesta 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 IntegerWbCount = Workbooks.CountFor i = WbCount To 1 Step -1If Workbooks(i).Name <> ThisWorkbook.Name ThenWorkbooks(i).Close SaveChanges:=TrueEnd IfNext iEnd 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 el. În acest caz, nu trebuie să declarăm o variabilă a registrului de lucru, ci trebuie să numărăm numărul total de registre de lucru deschise. Când avem numărul, folosim bucla For Next pentru a parcurge fiecare registru de lucru. De asemenea, folosim numărul indexului pentru a ne referi la registrele de lucru în acest caz.

rețineți că în codul de mai sus, suntem looping de la WbCount la 1 cu Pasul -1. Acest lucru este necesar ca cu fiecare buclă, registrul de lucru se închide și numărul de registre de lucru devine scăzut cu 1.

eroare în timp ce lucrați cu obiectul Registrului de lucru (eroare de execuție ‘9’)

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

obiect registru de lucru în Vba - Runtime Error 9 indice în afara intervalului

În general, erorile VBA nu sunt foarte informative și de multe ori vă lasă să vă dați seama ce a mers prost.

iată câteva dintre motivele posibile care pot duce la această eroare:

  • registrul de lucru pe care încercați să îl accesați nu există. De exemplu, dacă încerc să accesez al cincilea registru de lucru folosind registre de lucru(5) și există doar 4 registre de lucru deschise, atunci voi primi această eroare.
  • dacă utilizați un nume greșit pentru a face referire la registrul de lucru. De exemplu, dacă numele registrului dvs. de lucru este Exemple.xlsx și utilizați exemplu.XlX. apoi vă va arăta această eroare.
  • dacă nu ați salvat un registru de lucru și utilizați extensia, atunci primiți această eroare. De exemplu, dacă numele registrului de lucru este Book1 și utilizați numele Book1.xlsx fără ao salva, veți primi această eroare.
  • registrul de lucru pe care încercați să îl 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 Integerwbcount = Workbooks.CountThisWorkbook.Worksheets.AddActiveSheet.Range("A1").ActivateFor i = 1 To wbcountRange("A1").Offset(i - 1, 0).Value = Workbooks(i).NameNext iEnd 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 Integerwbcount = Workbooks.CountThisWorkbook.Worksheets.AddActiveSheet.Range("A1").ActivateFor i = 1 To wbcountRange("A1").Offset(i - 1, 0).Value = Workbooks(i).Path & "\" & Workbooks(i).NameNext iEnd Sub

deschideți registrul de lucru specificat făcând dublu clic pe celula

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 registrul de lucru respectiv.

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

acest cod va fi plasat în fereastra de cod ThisWorkbook.

pentru a face acest lucru:

  • faceți dublu clic pe obiectul ThisWorkbook din Project explorer. Rețineți că obiectul ThisWorkbook ar trebui să fie în registrul de lucru unde doriți această funcționalitate.
  • copiați și inseraț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 făcând dublu clic pe calea fișierului și VBA va deschide instantaneu acel registru de lucru.

unde se pune codul VBA

vă întrebați unde merge codul VBA în registrul de lucru Excel?

Excel are un backend VBA numit editorul VBA. Trebuie să copiați și să inserați codul în fereastra de cod a modulului editorului VB.

iată pașii pentru a face acest lucru:

  1. accesați fila Dezvoltator.utilizarea registrelor de lucru în fila Excel VBA - Developer din panglică
  2. Faceți clic pe opțiunea Visual Basic. Aceasta va deschide editorul VB în backend.Faceți clic pe Visual Basic
  3. în panoul Project Explorer din Editorul VB, faceți clic dreapta pe orice obiect pentru registrul de lucru în care doriți să introduceți codul. Dacă nu vedeți Project Explorer, accesați fila Vizualizare și faceți clic pe Project Explorer.
  4. mergeți la Inserare și faceți clic pe modul. Aceasta va insera un obiect modul pentru registrul de lucru.utilizarea registrelor de lucru în Excel VBA - inserarea modulului
  5. copiați și lipiți codul în fereastra modulului.utilizarea registrelor de lucru în Excel VBA - inserarea modulului

S-ar putea să vă placă și următoarele tutoriale Excel VBA:

  • cum se înregistrează o macrocomandă în Excel.
  • crearea unei funcții definite de utilizator în Excel.
  • cum se creează și se utilizează Add-in în Excel.
  • cum să Resue macro-uri prin plasarea în registrul de lucru personal Macro.
  • obțineți lista de nume de fișiere dintr-un Folder din Excel (cu și fără VBA).
  • cum se utilizează funcția Excel VBA InStr (cu exemple practice).
  • cum se sortează datele în Excel folosind VBA (un ghid pas cu pas).