Acest ghid vă va prezenta lucrul cu Obiect de registru de lucru în VBA.
Obiectul Caiet de lucru
În primul rând, pentru a interacționa cu registrele de lucru din VBA, trebuie să înțelegeți Obiect de registru de lucru.
Cu obiectul registru de lucru, puteți face referire la registrele de lucru după numele lor astfel:
1 | Cărți de lucru („Book2.xlsm”). Activați |
Cu toate acestea, acest cod va funcționa numai dacă registrul de lucru este deschis. Dacă registrul de lucru este închis, va trebui să furnizați calea completă a registrului de lucru:
1 | Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
În loc să tastați calea completă, dacă registrul de lucru dorit se află în același director cu registrul de lucru în care este stocat codul dvs., puteți utiliza acest cod de linie pentru a deschide registrul de lucru:
1 | Workbooks.Open (ThisWorkbook.Path & "\ book2.xlsm") |
Aceasta folosește obiectul ThisWorkbook pe care îl vom discuta în secțiunea următoare.
Număr index carte de lucru
În cele din urmă, puteți face referință la registrele de lucru după „Numărul index”. Numărul index al unui registru de lucru corespunde ordinii de deschidere a registrului de lucru (din punct de vedere tehnic este poziția registrului de lucru în colecția de registre de lucru).
1 | Cărți de lucru (1). Activați |
Acest lucru este util dacă doriți să faceți ceva de genul închiderii primului (sau ultimului) registru de lucru deschis.
Activați Workbook, ActiveWorkbook și ThisWorkbook
Dacă un registru de lucru este INACTIV, puteți accesa obiectele din Workbook astfel:
1 | Cărți de lucru („Book2.xlsm”). Foi („Sheet1”). Range („A1”). Valoare = 1 |
Cu toate acestea, dacă registrul de lucru este activ, puteți omite obiectul registrului de lucru:
1 | Foi („Foaie1”). Interval („A1”). Valoare = 1 |
Și dacă doriți să interacționați cu foaia activă a registrului de lucru, puteți, de asemenea, să omiteți obiectul foi:
1 | Gama („A1”). Valoare = 1 |
Activați registrul de lucru
Pentru a activa un registru de lucru, utilizați Activează metoda.
1 | Cărți de lucru („Book2.xlsm”). Activați |
Acum puteți interacționa cu obiectul Book2 fără a indica în mod explicit numele registrului de lucru.
ActiveWorkbook
The ActiveWorkbook obiectul se referă întotdeauna la registrul de lucru activ. Acest lucru este util dacă doriți să atribuiți ActiveWorkbook unei variabile de utilizat ulterior.
12 | Dim wb Ca registru de lucruSetați wb = ActiveWorkbook |
Acest manual de lucru
The Acest manual de lucru obiect se referă întotdeauna la registrul de lucru în care este stocat codul de rulare. Pentru a activa ThisWorkbook, utilizați această linie de cod:
1 | ThisWorkbook.Activate |
Deschideți registru de lucru
Pentru a deschide un registru de lucru, utilizați Metoda deschisă:
1 | Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
Cartea de lucru nou deschisă va deveni întotdeauna ActiveWorkbook, permițându-vă să interacționați cu ușurință cu acesta.
1 | ActiveWorkbook.Save |
Metoda Deschisă are mai multe alte argumente, permițându-vă să deschideți numai citire, să deschideți un registru de lucru protejat prin parolă și multe altele. Este tratat aici în articolul nostru despre deschiderea / închiderea registrelor de lucru.
Deschideți și atribuiți variabilei
De asemenea, puteți deschide un registru de lucru și îl puteți atribui unei variabile în același timp:
12 | Dim wb Ca registru de lucruSet wb = Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
Deschideți dialogul de fișiere
De asemenea, puteți declanșa caseta de dialog Deschidere fișier astfel:
12345678 | Sub OpenWorkbook ()Dim strFile As StringstrFile = Application.GetOpenFilename ()Cărți de lucru.Open (strFile)Sfârșitul Sub |
Creați un registru de lucru nou (Adăugați)
Această linie de cod va crea un nou registru de lucru:
1 | Cărți de lucru.Adăugare |
Noul registru de lucru devine acum ActiveWorkbook, permițându-vă să interacționați cu acesta (ex. salvați noul registru de lucru).
Adăugați un registru de lucru nou la variabilă
De asemenea, puteți adăuga un nou registru de lucru direct la o variabilă:
12 | Dim wb Ca registru de lucruSetați wb = Workbooks.Add |
Închideți registrul de lucru
Închideți și salvați
Pentru a închide un registru de lucru cu salvarea, utilizați Metoda de închidere cu Salvează modificările setat la ADEVĂRAT:
1 | ActiveWorkbook.Close SaveChanges: = True |
Închideți fără Salvare
Pentru a închide fără a salva, setați Salvează modificările egal cu FALS:
1 | ActiveWorkbook.Close SaveChanges: = False |
Cartea de lucru Salvați ca
The Metoda SaveAs este folosit pentru a salva un registru de lucru ca.
Pentru a salva un registru de lucru cu un nume nou, în același director, puteți implica acest lucru:
1 | ActiveWorkbook.SaveAs "nou" |
unde „nou” este noul nume de fișier.
Pentru a salva un registru de lucru într-un director nou cu o anumită extensie de fișier, trebuie doar să specificați noul director și numele fișierului:
1 | ActiveWorkbook.SaveAs "C: \ Users \ StevePC2 \ Downloads \ new.xlsm" |
Alte exemple VBA de registru de lucru
Numele registrului de lucru
Pentru a obține numele unui registru de lucru:
1 | MsgBox ActiveWorkbook.Name |
Protejați registrul de lucru
Pentru a proteja structura registrului de lucru de editare, puteți utiliza fișierul Metoda de protejare (parola opțională):
1 | Cărți de lucru („book1.xlsm”). Protejați „parola” |
Pentru a proteja un registru de lucru utilizați Metoda UnProtect:
1 | Cărți de lucru („book1.xlsm”). Anulați protecția „parolei” |
Buclați prin toate registrele de lucru deschise
Pentru a parcurge toate registrele de lucru deschise:
123456789 | Sub LoopThroughWBs ()Dim wb Ca registru de lucruPentru fiecare wb din registrele de lucruMsgBox wb.NameUrmătorul wbSfârșitul Sub |
Carnet de lucru Activare eveniment
Puteți rula un anumit cod ori de câte ori este deschis un anumit registru de lucru cu Cartea de lucru Eveniment deschis.
Plasați această procedură în modulul ThisWorkbook al registrului de lucru:
123 | Private Sub Workbook_Open ()Foi de calcul („foaia1”). ActivațiSfârșitul Sub |
Această procedură se va activa Foaia 1 de fiecare dată când se deschide registrul de lucru.