În acest tutorial, veți învăța cum să utilizați VBA pentru a deschide și închide registrul de lucru Excel în mai multe moduri.
VBA vă permite să deschideți sau să închideți fișiere folosind metodele standard .Deschis și .Închide.
Dacă doriți să aflați cum să verificați dacă există un fișier înainte de a încerca să deschideți fișierul, puteți face clic pe acest link: Fișierul VBA există
Deschideți un registru de lucru în VBA
Deschideți registru de lucru din cale
Dacă știți ce fișier doriți să deschideți, puteți specifica numele complet al căii sale în funcție. Iată codul:
1 | Cărți de lucru. Deschideți „C: \ VBA Folder \ Sample file 1.xlsx” |
Această linie a codului deschide fișierul „Sample file 1” din „Folderul VBA”.
Deschideți registru de lucru - ActiveWorkbook
Când deschideți un registru de lucru, acesta devine automat ActiveWorkbook. Puteți face referire la registrul de lucru nou deschis astfel:
1 | ActiveWorkbook.Save |
Când faceți referire la o foaie sau un interval și omiteți numele registrului de lucru, VBA va presupune că vă referiți la ActiveWorkbook:
1 | Foi de calcul („Foaie1”). Nume = „Introducere” |
Deschideți registru de lucru și atribuiți unei variabile
De asemenea, puteți deschide un registru de lucru și îl puteți atribui direct unei variabile obiect. Această procedură va deschide un registru de lucru pentru wb variabilă și apoi salvați registrul de lucru.
123456 | Sub OpenWorkbookToVariable ()Dim wb Ca registru de lucruSetați wb = Workbooks.Open („C: \ VBA Folder \ Sample file 1.xlsx”)wb.SalvațiSfârșitul Sub |
Atribuirea registrelor de lucru variabilelor atunci când acestea sunt deschise este cel mai bun mod de a vă urmări registrele de lucru
Caseta de lucru Deschideți fișierul de dialog
De asemenea, puteți declanșa caseta de dialog Deschidere fișier a registrului de lucru. Aceasta permite utilizatorului să navigheze către un fișier și să îl deschidă:
12345678 | Sub OpenWorkbook ()Dim strFile As StringstrFile = Application.GetOpenFilename ()Cărți de lucru.Open (strFile)Sfârșitul Sub |
După cum puteți vedea în imaginea 1, cu această abordare, utilizatorii pot alege ce fișier să deschidă. Caseta de dialog Deschidere fișier poate fi foarte personalizată. Puteți seta implicit un anumit folder, puteți alege ce tipuri de fișiere sunt vizibile (ex … numai xlsx) și multe altele. Citiți tutorialul nostru din caseta de dialog Deschidere fișier pentru exemple detaliate.
Deschideți noul registru de lucru
Această linie de cod va deschide un nou registru de lucru:
1 | Cărți de lucru.Adăugare |
Deschideți noul registru de lucru pentru variabilă
Această procedură va deschide un nou registru de lucru, atribuindu-l variabilei wb:
1234 | Sub OpenNewWorkbook ()Dim wb Ca registru de lucruSetați wb = Workbooks.AddSfârșitul Sub |
Deschideți sintaxa registrului de lucru
Când folosiți Workbooks.Deschideți s-ar putea să observați că există multe opțiuni disponibile la deschiderea registrului de lucru:
Numele fișierului este obligatoriu. Toate celelalte argumente sunt opționale - și probabil că nu va trebui să cunoașteți majoritatea celorlalte argumente. Iată cele două cele mai frecvente:
Deschideți Workbook Only-Read
Când registrul de lucru este deschis numai în citire, nu puteți salva peste fișierul original. Acest lucru împiedică fișierul să fie editat de utilizator.
1 | Cărți de lucru. Deschideți „C: \ VBA Folder \ Sample file 1.xlsx”,, True |
Deschideți registrul de lucru protejat prin parolă
Un registru de lucru poate fi protejat prin parolă. Utilizați acest cod pentru a deschide registrul de lucru protejat prin parolă:
1 | Cărți de lucru. Deschideți „C: \ Folder VBA \ Fișier eșantion 1.xlsx”,,, „parolă” |
Deschideți note de sintaxă a registrului de lucru
Observați că în imaginea de mai sus am inclus o paranteză „(” pentru a afișa sintaxa. Dacă utilizați paranteză când lucrați cu Workbooks.Deschideți, trebuie să atribuiți registrul de lucru unei variabile:
1234 | Sub OpenWB ()Dim wb Ca registru de lucruSet wb = Workbooks.Open ("C: \ VBA Folder \ Sample file 1.xlsx", True, True)Sfârșitul Sub |
Închideți un registru de lucru în VBA
Închideți registrul de lucru specific
În mod similar cu deschiderea unui registru de lucru, există mai multe moduri de a închide un fișier. Dacă știți ce fișier doriți să închideți, puteți utiliza următorul cod:
1 | Workbooks.Close („C: \ VBA Folder \ Sample file 1.xlsx”) |
Această linie de cod închide fișierul „Exemplu de fișier 1” dacă este deschis. Dacă nu, va afișa o eroare, deci ar trebui să vă ocupați de gestionarea erorilor.
Închideți registrul de lucru activ
Dacă doriți să închideți registrul de lucru care este activ în prezent, această linie de cod vă va permite să faceți acest lucru:
1 | ActiveWorkbook.Închide |
Închideți toate registrele de lucru deschise
Pentru a închide toate registrele de lucru deschise, puteți utiliza pur și simplu acest cod:
1 | Cărți de lucru.Închide |
Închideți primul registru de lucru deschis
Aceasta va închide primul registru de lucru deschis / creat:
1 | Cărți de lucru (1) .Închideți |
Înlocuiți 1 cu 2 pentru a închide al doilea registru de lucru deschis / creat și așa mai departe.
Închideți fără a salva
Aceasta va închide un registru de lucru fără a salva și fără a afișa promptul de salvare:
1 | ActiveWorkbook.Close savechanges: = False |
Salvați și închideți fără prompt
În mod similar, aceasta va salva și închide un registru de lucru fără a afișa solicitarea de salvare:
1 | ActiveWorkbook.Close savechanges: = True |
Notă: Există mai multe alte modalități de a indica dacă se salvează sau nu un registru de lucru și, de asemenea, dacă se afișează sau nu solicitări. Acest lucru este discutat mai detaliat aici.
Alte exemple deschise de carte de lucru
Deschideți mai multe cărți de lucru noi
Această procedură va deschide mai multe registre de lucru noi, atribuind noile registre de lucru unui tablou:
12345678 | Sub OpenMultipleNewWorkbooks ()Dim arrWb (3) Ca registru de lucruDim i IntegerPentru i = 1 până la 3Setați arrWb (i) = Workbooks.AddApoi euSfârșitul Sub |
Deschideți toate registrele de lucru Excel într-un dosar
Această procedură va deschide toate registrele de lucru Excel dintr-un folder, utilizând selectorul de dialog Deschidere fișier.
12345678910111213141516 | Sub OpenMultipleWorkbooksInFolder ()Dim wb Ca registru de lucruDim dlgFD ca jurnal de fișiereDim strFolder As StringDim strFileName Ca șirSetați dlgFD = Application.FileDialog (msoFileDialogFolderPicker)Dacă dlgFD.Show = -1 AtuncistrFolder = dlgFD.SelectedItems (1) & Application.PathSeparatorstrFileName = Dir (strFolder & "* .xls *")Faceți în timp ce strFileName ""Set wb = Workbooks.Open (strFolder & strFileName)strFileName = DirBuclăEnd IfSfârșitul Sub |
Verificați dacă un registru de lucru este deschis
Această procedură va testa dacă un registru de lucru este deschis:
1234567891011 | Sub TestByWorkbookName ()Dim wb Ca registru de lucruPentru fiecare wb din registrele de lucruDacă wb.Name = "Nouă foaie de lucru Microsoft Excel.xls" ApoiMsgBox „Am găsit-o”Ieșiți din codul de apel Sub 'aici, vom ieși doar pentru momentEnd IfUrmătorulSfârșitul Sub |
Workbook_Open Event
Evenimentele VBA sunt „declanșatoare” care îi spun VBA să ruleze un anumit cod. Puteți configura evenimente din registrul de lucru pentru deschidere, închidere, înainte de salvare, după salvare și multe altele.
Citiți tutorialul nostru Workbook_Open Event pentru a afla mai multe despre rularea automată a macro-urilor la deschiderea unui registru de lucru.