VBA Open / Close Workbook

Î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.

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

wave wave wave wave wave