Gestionarea registrelor de lucru

În multe dintre procedurile Excel, va trebui să manipulați registrele de lucru: crearea de registre de lucru noi, salvarea lor în diferite locații și formate, deschiderea, închiderea și imprimarea acestora. Pentru a realiza aceste activități, utilizați colecția Workbooks, care conține un obiect Workbook pentru fiecare registru de lucru deschis în Excel.

Crearea unui registru de lucru

Pentru a crea un registru de lucru nou, utilizați metoda Add cu colecția Workbooks. Sintaxa este după urmează:

Workbooks.Add(Template)

Aici, Template este un argument opțional de tip Variant care specifică modul de creare al registrului de lucru. Următoarele subsecțiuni discută despre opțiunile disponibile.

Crearea unui registru de lucru nou necompletat

Pentru a crea un registru de lucru necompletat (la fel ca dacă ați fi făcut clic pe fila Fișier (File) de pe Panglică, apoi ați făcut clic pe butonul New), omiteți argumentul Template:

Workbooks.Add

Noul registru de lucru primește numărul de foi specificate în caseta de dialog Opțiuni din Excel. (Clic pe eticheta File de pe panglică, apoi alegeți Options pentru a afișa secțiunea When Creating New Workbooks din caseta de dialog – veți vedea un câmp în care puteți specifica opțiunea Include This Many Sheets. Valoarea implicită este o foaie de lucru.)

Puteți obține sau seta această valoare în VBA utilizând proprietatea SheetsInNewWorkbook a obiectului Application. De exemplu, următoarea macrocomandă declară o variabilă de tip Integer, numită mySiNW, care stochează proprietatea SheetsInNewWorkbook curentă, setează proprietatea SheetsInNewWorkbook la 12, creează un registru de lucru nou (cu cele 12 foi de lucru), și apoi restabilește setarea SheetsInNewWorkbook la valoarea sa anterioară:

Sub MVBA_New_Workbook_with_12_Sheets()
  Dim mySiNW As Integer
  mySiNW = Application.SheetsInNewWorkbook 
  Application.SheetsInNewWorkbook = 12 
  Workbooks.Add
  Application.SheetsInNewWorkbook = mySiNW 
End Sub

Crearea unui registru de lucru nou bazat pe un șablon

Pentru a crea un registru de lucru bazat pe un șablon, specificați calea completă și numele fișierului șablon. De exemplu, următoarea instrucțiune creează un registru de lucru nou bazat pe șablonul Balance Sheet.xlt într-un folder de rețea \\server\template\excel:

Workbooks.Add Template:= "\\server\template\excel\Balance Sheet.xlt" 

Crearea unui registru de lucru nou bazat pe un registru de lucru existent

Pentru a crea un registru de lucru bazat pe un registru de lucru existent, specificați numele complet și calea fișierului registru de lucru. De exemplu, următoarea instrucțiune creează un registru de lucru nou bazat pe registrul de lucru existent numit Personnel.xlsx în folderul C:\Business:

Workbooks.Add Template:= "C:\Business\Personnel.xlsx"

Crearea unei diagrame în registrul de lucru, a unei foi de macrocomenzi sau a unei foi de lucru

De asemenea, aveți posibilitatea să creați un registru de lucru care conține o singură diagramă, o foaie de macrocomandă sau o foaie de lucru utilizând constantele afișate în tabelul de mai jos, cu argumentul Template.

De exemplu, următoarea instrucțiune creează un registru de lucru care conține o singură foaie cu o diagramă:

Workbooks.Add Template:=xlWBATChart

Salvarea unui registru de lucru

Prima dată când salvați un registru de lucru, trebuie să specificați calea și numele fișierului de utilizat (aceasta este opțiunea SaveAs). După aceea, aveți posibilitatea să salvați registrul de lucru sub același nume și aceeași cale în mod implicit sau să specificați o cale diferită, nume, format sau toate trei (aceasta este opțiunea Save).

Salvarea unui registru de lucru pentru prima dată sau ca fișier diferit

Pentru a salva un registru de lucru pentru prima dată sau pentru a salva un registru de lucru utilizând o altă cale, nume sau format diferit, utilizați metoda SaveAs. Sintaxa este următoarea:

expression.SaveAs(FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodePage, TextVisualLayout, Local)

Componentele sintaxei sunt următoarele:

  • expression este o expresie obligatorie care returnează un obiect Workbook.
  • FileName este un argument opțional de tip Variant care specifică numele registrului de lucru. Dacă omiteți FileName, VBA utilizează folderul curent și numele implicit al fișierului Bookn.xlsx pentru un registru de lucru, unde n este următorul număr disponibil (de exemplu,, Book5.xlsx).

VBA utilizează formatul de fișier implicit, care este specificat în caseta de dialog Options din pagina Save. (Clic pe eticheta File de pe Ribbon, apoi clic pe Options pentru a afișa caseta de dialog Options, apoi clic pe butonul Save din stânga. Apare o listă Save Files In This Format.)

Aveți posibilitatea să aflați și să setați formatul implicit de salvare utilizând proprietatea DefaultSaveFormat a obiectului Application. De exemplu, următoarea instrucțiune setează formatul implicit de salvare la xlNormal, formatul "Excel Workbook":

Application.DefaultSaveFormat = xlNormal
  • FileFormat este un argument opțional de tip Variant care specifică formatul în care se salvează registrul de lucru. Tabelul de mai jos afișează constantele XlFileFormat pentru specificarea formatelor utilizate în mod obișnuit.

Fiți atenți să nu suprascrieți accidental un fișier

Când salvați un registru de lucru într-un folder, ar trebui să verificați dacă există deja în folder un registru de lucru cu același nume. Dacă există și dacă nu opriți acțiunea de salvare, VBA va suprascrie fișierul fără avertisment, cauzând pierderea datelor. Consultați Utilizarea funcției Dir pentru a verifica dacă există un fișier din secțiunea Folosirea funcțiilor încorporate (Built-In), pentru instrucțiuni despre modul în care se verifică dacă există deja un fișier care are un anumit nume.

  • Password este un argument opțional de tip Variant pe care îl puteți utiliza pentru a furniza parola necesară pentru a deschide registrul de lucru ("password to open"). Password este sensibil la litere mari și mici. Dacă utilizatorul nu poate furniza parola, Excel nu va deschide registrul de lucru.
  • WriteResPassword este un argument opțional de tip Variant pe care îl puteți utiliza pentru a furniza parola necesară pentru a deschide registrul de lucru în mod editare ("password to modify"). WriteResPassword este sensibil la litere mari și mici. Dacă utilizatorul nu poate furniza parola, Excel va deschide registrul de lucru doar în citire.
  • ReadOnlyRecommended este un argument opțional de tip Variant pe care îl puteți seta la True pentru ca Excel să recomande utilizatorului să deschidă documentul doar pentru citire. Astfel de recomandări sunt ușor ignorate, așa că, dacă doriți să blocați un registru de lucru pentru a împiedica alte persoane să îl modifice, ați face mai bine să utilizați parola "password to modify."
  • CreateBackup este un argument opțional de tip Variant pe care îl puteți seta la True pentru ca Excel să creeze automat o copie de rezervă a registrului de lucru. Setarea implicită este False.
  • AccessMode este un argument opțional pe care îl puteți utiliza pentru a specifica dacă registrul de lucru este partajat sau este în modul Exclusive. Specificaţi xlExclusive pentru modul Exclusive, xlShared pentru modul partajat și xlNoChange pentru a lăsa modul de acces neschimbat (aceasta este setarea implicită).
  • ConflictResolution este un argument opțional care se poate utiliza pentru a specifica modul de rezolvare a oricăror conflicte ale registrului de lucru. Utilizaţi xlLocalSessionChanges pentru a accepta modificările din sesiunea Excel curentă, xlOtherSessionChanges să accepte alți utilizatori sau modificările celorlalți utilizatori și xlUserResolution pentru a afișa caseta de dialog Resolve Conflicts astfel încât utilizatorul să poată alege cum să rezolve conflictele.
  • AddToMru este un argument opțional de tip Variant pe care îl puteți seta la True pentru a adăuga registrul de lucru la lista de fișiere utilizate recent în partea de jos a meniului Fișier. Setarea implicită este False.
  • TextCodePage și TextVisualLayout sunt argumente opționale de tip Variant utilizate în versiunile internaționale ale Excel (nu în U.S. English Excel).
  • Local este un argument opțional de tip Variant care controlează dacă limba utilizată este cea din Excel (True) sau din VBA (False). (Rareori va trebui să folosiți Local.)

Constante XlFileFormat pentru formate utilizate pe scară largă

De exemplu, următoarea instrucțiune salvează registrul de lucru activ în folderul curent cu numele de Salarii.xlsx și utilizând formatul implicit de salvare:

ActiveWorkbook.SaveAs FileName:="Salarii.xlsx"

Următoarea instrucțiune salvează registrul de lucru deschis denumit Schedule.xlsx sub denumirea de Building Schedule.xlsx în folderul numit \\server2\Public și în formatul Microsoft Excel 97-2003 & 5.0/95 (din Excel 2003):

ActiveWorkbook.SaveAs Filename:="\\server2\Public\Building Schedule.xlsx", _ 
FileFormat:=xlExcel9795

Pentru a vedea o listă completă a tuturor formatelor de fișier Excel 2016, vizitați această pagină web: http://msdn.microsoft.com/en-us/library/office/ff198017.aspx

Salvarea unui registru de lucru care a fost deja salvat

După salvarea unui registru de lucru, îl puteți salva din nou cu același nume utilizând metoda Save. Pentru un obiect Workbook, metoda Save nu are argumente. De exemplu, următoarea instrucțiune salvează registrul de lucru numit Data Book.xlsx:

Workbooks("Data Book.xlsx").Save

Salvarea tuturor registrelor de lucru deschise

Colecția Workbooks nu are o metodă Save, dar puteți salva toate registrele de lucru deschise utilizând o buclă, ca și cea afișată în următoarea subrutină:

Sub Save_All_Workbooks()
Dim myWorkbook As Workbook 
For Each myWorkbook In Workbooks 
   myWorkbook.Save 
Next myWorkbook 
End Sub

Rețineți că, dacă oricare dintre registrele de lucru deschise în prezent nu au fost salvate anterior și dacă acestea includ orice macrocomenzi, se va afișa un mesaj de securitate atunci când se execută această procedură. Utilizatorilor li se spune că trebuie să fie de acord să salveze conținutul executabil potențial periculos într-un format de fișier activat pentru macrocomenzi (.xlsm). Cu toate acestea, dacă fișierul a fost deja salvat cu extensia .xlsm, nu se afișează niciun mesaj. Dacă doriți să suprimați astfel de mesaje, puteți introduce următorul cod la începutul acestei proceduri:

Application.DisplayAlerts = False

Cu toate acestea, asigurați-vă că setați proprietatea DisplayAlerts înapoi la True cât mai curând posibil în cod. Acest mesaj de avertizare special este destul de util ca un memento pentru utilizator, astfel încât probabil nu va dori să-l suprime.

Accesarea spațiului de stocare în cloud

Accesul VBA la OneDrive, Dropbox sau la un alt sisteme de stocare în cloud este destul de ușor. Se deschide sau se salvează fișierul, în folderul OneDrive sau Dropbox.

Singurul lucru de reținut este calea la fișier, care arată cam așa.: "C:\Users\ NumeUtilizator\OneDrive\ExcelToCloudTest", înlocuind NumeUtilizator cu numele dvs.

Acest exemplu salvează documentul curent în OneDrive. Pentru că aceasta este o sursă de erori destul de multe, repet: se schimbă numele NumeUtilizator, cu numele dvs. în calea pentru fișier:

ActiveWorkbook.SaveAs ("C:\Users\NumeUtilizator\OneDrive\ExcelCloudTest")

Pentru a salva în Dropbox, este la fel:

ActiveWorkbook.SaveAs ("C:\Users\NumeUtilizator\DropBox\ExcelCloudTest")

Accesarea spațiului de stocare în cloud

Accesul VBA la OneDrive, Dropbox sau la un alt sisteme de stocare în cloud este destul de ușor. Se deschide sau se salvează fișierul, în folderul OneDrive sau Dropbox.

Singurul lucru de reținut este calea la fișier, care arată cam așa.: "C:\Users\ NumeUtilizator\OneDrive\ExcelToCloudTest", înlocuind NumeUtilizator cu numele dvs.

Acest exemplu salvează documentul curent în OneDrive. Pentru că aceasta este o sursă de erori destul de multe, repet: se schimbă numele NumeUtilizator, cu numele dvs. în calea pentru fișier:

ActiveWorkbook.SaveAs ("C:\Users\NumeUtilizator\OneDrive\ExcelCloudTest")

Pentru a salva în Dropbox, este la fel:

ActiveWorkbook.SaveAs ("C:\Users\NumeUtilizator\DropBox\ExcelCloudTest")

Deschiderea unui registru de lucru

Pentru a deschide un registru de lucru, folosiți metoda Open cu colecția Workbooks. Sintaxa este următoarea:

expression.Open(FileName, UpdateLinks, ReadOnly, Format, Password, WriteResPassword, IgnoreReadOnlyRecommended, Origin, Delimiter, Editable, Notify, Converter, AddToMru, Local, CorruptLoad)

Componentele sintaxei sunt următoarele:

  • expression este o expresie necesară care returnează o colecție Workbooks. De multe ori, veți dori să utilizați direct colecția Workbooks.
  • FileName este un argument obligatoriu de tip String care furnizează calea și numele registrului de lucru care va fi deschis.
  • UpdateLinks este un argument opțional de tip Variant care controlează modul în care Excel actualizează toate legăturile din registrul de lucru. Dacă omiteți acest argument, utilizatorului i se solicită să precizeze modul de actualizare a legăturilor. Tabelul 22.3 arată valorile și efectele acestora. Dacă Microsoft Excel deschide un fișier în formatul WKS, WK1 sau WK3 și valoarea argumentului pentru UpdateLinks este 2, Microsoft Excel generează diagrame din graficele atașate la fișier. În cazul în care argumentul este 0, nu vor fi create diagrame.
  • ReadOnly este un argument opțional de tip Variant pe care îl puteți seta la True pentru a deschide registrul de lucru ca doar în citire (read only). Valoarea implicită este False.
  • Format este un argument opțional de tip Variant cu care puteți specifica caracterul de delimitare la deschiderea unui fișier text. Folosiți 1 pentru tabs, 2 pentru virgule, 3 pentru spații, 4 pentru punct și virgulă, 5 pentru cazul fără delimitator și 6 pentru un delimitator specificat ca argument Delimiter.
  • Password este un argument opțional de tip Variant pe care îl puteți utiliza pentru a furniza parola necesară deschiderii registrului de lucru ("password to open"). Password este sensibil la litere mari și mici. Dacă omiteți Password și este necesară o parolă, Excel solicită utilizatorului acest lucru.

Nu includeți parole în procedurile dvs.

De obicei, cel mai bine este să evitați introducerea parolelor în cod, deoarece este posibil ca să le citească și alte persoane.

  • WriteResPassword este un argument opțional de tip Variant pe care îl puteți utiliza pentru a furniza parola necesară pentru a deschide registrul de lucru în mod editare ("password to modify"). WriteResPassword este sensibil la litere mari și mici. Dacă omiteți WriteResPassword și este necesară o parolă, Excel solicită utilizatorului să scrie parola.
  • IgnoreReadOnlyRecommended este un argument opțional de tip Variant pe care îl puteți seta la True pentru ca Excel să ignore o recomandare doar în citire a registrului de lucru.
  • Origin este un argument opțional de tip Variant pe care îl puteți utiliza la deschiderea unui fișier text pentru a specifica sistemul de operare utilizat pentru a-l codifica și, astfel, cum să se trateze caracterele carriage-return/line-feed și codificare caractere. Utilizaţi xlWindows pentru a indica Windows, xlMacintosh pentru a indica Mac OS sau xlMSDOS pentru a indica DOS.
  • Delimiter este un argument opțional de tip Variant pe care îl puteți utiliza cu o valoare Format de 6 pentru a specifica un caracter de delimitare folosit la deschiderea unui fișier text.
  • Editable este un argument opțional de tip Variant pe care îl puteți seta la True când FileName specifică un șablon pentru a deschide șablonul în sine în loc să porniți un registru de lucru bazat pe un șablon (False). Editable se aplică și programelor de completare Excel 4.0: True deschide programul de completare într-o fereastră vizibilă, iar False deschide programul de completare ascuns. Cu toate acestea, nu puteți utiliza această opțiune cu programe de completare create în Excel 5.0 sau ulterioare.
  • Notify este un argument opțional de tip Variant pe care îl puteți seta la True pentru ca Excel să adauge registrul de lucru la lista de notificări atunci când altcineva are registrul de lucru deschis pentru editare și VBA solicită registrul de lucru. Excel notifică utilizatorul atunci când registrul de lucru devine disponibil. Dacă specificați Notify:=False, deschiderea registrului de lucru nu reușește dacă altcineva are registrul de lucru deschis.
  • Converter este un argument opțional de tip Variant pe care îl puteți utiliza pentru a specifica primul converter utilizat la deschiderea unui fișier.
  • AddToMru este un argument opțional de tip Variant pe care le puteți seta la True pentru a adăuga registrul de lucru la lista de fișiere utilizate recent în partea de jos a meniului File. Setarea implicită este False.
  • Local este un argument opțional de tip Variant care controlează dacă limba utilizată este cea din Excel (True) sau din VBA (False). (Rareori va trebui să folosiți Local.)
  • CorruptLoad este un argument opțional de tip Variant pe care îl puteți utiliza pentru a controla modul în care Excel gestionează deteriorarea pe care o întâlnește la deschiderea registrului de lucru. Utilizaţi xlNormalLoad pentru a utiliza un comportament normal – mai întâi, deschizând registrul de lucru ca de obicei; în al doilea rând, repararea fișierului în cazul în care există o problemă; și în al treilea rând, recuperarea datelor din registrul de lucru. Utilizaţi xrRepairFile pentru a merge direct la etapa de reparare sau xlExtractData pentru a merge direct la etapa de recuperare.

Valori pentru argumentul UpdateLinks

De exemplu, următoarea instrucțiune deschide registrul de lucru numit Expenses.xlsx stocat în folderul C:\Business fără actualizarea legăturilor:

Workbooks.Open Filename:= "C:\Business\Expenses.xlsx", UpdateLinks:=0

Următoarea instrucțiune deschide registrul de lucru numit Plan.xlsx stocat în folderul D:\Planning, furnizând și parola pentru deschiderea registrului de lucru:

Workbooks.Open Filename:="D:\Planning\Plan.xlsx", Password:="s@cur1ng!"

Următoarea instrucțiune deschide fișierul text numit Data13.txt din folderul z:\transfer folosind un semn de exclamare (!) ca și caracter delimitator:

Workbooks.Open _
Filename:="z:\transfer\Data13.txt", Format:=6, Delimiter:="!"

Închiderea unui registru de lucru

Pentru a închide un registru de lucru, utilizați metoda Close cu obiectul Workbook corespunzător. Sintaxa este următoarea:

expression.Close(SaveChanges, Filename, RouteWorkbook)

Componentele sintaxei sunt următoarele:

  • expression este o expresie necesară care returnează un obiect Workbook sau colecția Workbooks.
  • SaveChanges este un argument opțional de tip Variant care vă permite să specificați dacă să salvați orice modificări nesalvate în registrul de lucru (True) sau nu (False). Dacă omiteți argumentul SaveChanges, Excel solicită utilizatorului să salveze orice registru de lucru care conține modificări nesalvate.
  • Filename este un argument opțional de tip Variant pe care le puteți utiliza pentru a specifica numele fișierului sub care se salvează registrul de lucru dacă conține modificări. În majoritatea cazurilor,, cel mai bine este să utilizați metoda SaveAs pentru a salva registrul de lucru sub un alt nume înainte de a utiliza metoda Close pentru a-l închide.
  • RouteWorkbook este un argument opțional de tip Variant pe care îl puteți seta la True pentru a direcționa registrul de lucru către următorul destinatar pe traseul său, sau la False pentru a opri rutarea registrului de lucru. Dacă registrul de lucru nu are atașată nicio rutare, RouteWorkbook nu are niciun efect.

De exemplu, următoarea instrucțiune închide registrul de lucru activ fără a salva modificările:

ActiveWorkbook.Close SaveChanges:=False

Închiderea registrelor de lucru deschise

Pentru a închide toate registrele de lucru deschise, utilizați metoda Close cu colecția Workbooks:

 Workbooks.Close

Metoda Close nu are argumente. Excel vă solicită să salvați orice registru de lucru care conține modificări nesalvate. În cazul în care astfel de solicitări vor fi incomode într-o procedură, utilizați o buclă (de exemplu,, o buclă For Each...Next cu colecția Workbooks) pentru a închide fiecare registru de lucru individual, folosind argumentul SaveChanges pentru a controla dacă Excel salvează sau elimină modificările nesalvate.

Partajarea unui registru de lucru

Pentru a determina dacă un registru de lucru este partajat, verificați proprietatea MultiUserEditing. Aceasta este o proprietate booleană doar în citire.

Pentru a partaja un registru de lucru, utilizați metoda SaveAs (discutată în "Salvarea unui registru de lucru pentru prima dată sau ca fișier diferit", descris mai sus) care salvează fișierul utilizând valoarea xlShared pentru argumentul AccessMode.

De exemplu, următoarele declarații partajează registrul de lucru numit Brainstorming.xlsx dacă nu este deja partajat:

With Workbooks("Brainstorming.xlsx")
  If MultiUserEditing = False Then
    .SaveAs Filename:=.FullName, AccessMode:=xlShared 
  End If 
End With

Protejarea unui registru de lucru

Pentru a proteja un registru de lucru, utilizați metoda Protect cu obiectul Workbook corespunzător. Sintaxa este următoarea:

expression.Protect(Password, Structure, Windows)

Componentele sintaxei sunt:

  • expression este o expresie obligatorie care returnează un obiect Workbook.
  • Password este un argument opțional de tip Variant care specifică parola pentru deprotejarea registrului de lucru. Password este sensibil la litere mari și mici. Veți dori aproape întotdeauna să furnizați Password – dacă nu, oricine poate deschide registrul de lucru îl poate deproteja.
  • Structure este un argument opțional de tip Variant pe care îl puteți seta la True pentru a proteja structura registrului de lucru (modul în care foile de lucru sunt poziționate unele față de celelalte) sau să îl lăsați la setarea implicită, False.
  • Windows este un argument opțional de tip Variant pe care îl puteți seta la True pentru a proteja ferestrele registrului de lucru sau pentru a omite să lase ferestrele neprotejate.

De exemplu, următoarea instrucțiune protejează structura și ferestrele registrului de lucru activ cu parola 0llsecurd:

ActiveWorkbook.Protect Password:="0llsecurd", Structure:=True, Windows:=True

Puteți proteja registrele de lucru atât împotriva scrierii (editării), cât și a citirii

Pe lângă protejarea unui registru de lucru împotriva modificărilor, îl puteți proteja împotriva deschiderii și vizualizării - descrierea mai jos, în „Setarea parolelor și a recomandărilor doar în citire pentru un registru de lucru”.

Lucrul cu obiectul ActiveWorkbook

Obiectul ActiveWorkbook returnează un obiect Workbook care reprezintă registrul de lucru activ (oricare registru de lucru care are în prezent focalizarea în fereastra Excel). Obiectul ActiveWorkbook se comportă ca un obiect Workbook și este foarte util în macrocomenzile pe care utilizatorii le execută după deschiderea registrului de lucru pe care doresc să îl manipuleze.

Dacă nu este deschis niciun registru de lucru, nu există niciun obiect ActiveWorkbook, astfel încât orice cod care încearcă să utilizeze obiectul ActiveWorkbook returnează o eroare. Deci, este o idee bună să verificați dacă este deschis cel puțin un registru de lucru înainte de a încerca să executați cod care presupune că există un registru de lucru activ. Una dintre opțiuni este să verificați dacă obiectul ActiveWorkbook nu este Nothing înainte de a rula codul, ca în exemplul următor:

If ActiveWorkbook Is Nothing Then
  MsgBox "Va rog deschideti un registru de lucru si clic în el inainte de a executa aceasta macrocomanda." _
  & vbCr & vbCr & "Aceasta macrocomanda se va inchide.", _ 
  vbOKOnly + vbExclamation, "Niciun registru de lucru deschis "
  End
End If

De asemenea, este o idee bună să verificați dacă registrul de lucru activ este cel în care va fi executat codul. Această problemă poate apărea cu ușurință atunci când o macrocomandă începe cu registrul de lucru activ și apoi creează un registru de lucru nou pentru a lucra. Noul registru de lucru devine registrul de lucru activ și, din acest moment, codul poate accesa registrul de lucru greșit.

Dacă există vreo îndoială cu privire la registrul de lucru cu care lucrați, declarați o variabilă de obiect Workbook și utilizați acea variabilă obiect în cod, în locul obiectului ActiveWorkbook.

De exemplu, următoarele declarații declară o variabilă obiect Workbook și îi atribuie obiectul ActiveWorkbook. Acum, codul ulterior poate funcționa cu variabila obiect, care nu se va schimba cu un alt registru de lucru:

Dim myWorkbook As Workbooks 
Set myWorkbook = ActiveWorkbook 
With myWorkbook 
  'aici se scriu comenzile 
End With