U ovom vodiču naučit ćete kako koristiti VBA za otvaranje i zatvaranje radne knjige programa Excel na nekoliko načina.
VBA vam omogućuje otvaranje ili zatvaranje datoteka standardnim metodama .Otvorena i .Zatvoriti.
Ako želite saznati kako provjeriti postoji li datoteka prije nego što pokušate otvoriti datoteku, možete kliknuti na ovu vezu: VBA datoteka postoji
Otvorite radnu knjigu u VBA -i
Otvorite radnu knjigu s puta
Ako znate koju datoteku želite otvoriti, u funkciji možete navesti njezin puni naziv puta. Evo koda:
1 | Radne knjige.Otvorite "C: \ VBA mapa \ Primjer datoteke 1.xlsx" |
Ovaj redak koda otvara datoteku "Primjer datoteke 1" iz "VBA mape".
Otvorena radna knjiga - ActiveWorkbook
Kad otvorite radnu knjigu, ona automatski postaje ActiveWorkbook. Novootvorenu radnu knjigu možete uputiti na sljedeći način:
1 | ActiveWorkbook.Save |
Kada referencirate list ili raspon i izostavite naziv radne knjige, VBA će pretpostaviti da se pozivate na ActiveWorkbook:
1 | Tablice ("List1"). Naziv = "Unos" |
Otvorite radnu knjigu i dodijelite je varijabli
Također možete otvoriti radnu knjigu i dodijeliti je izravno varijabli objekta. Ovaj postupak će otvoriti radnu knjigu za wb varijablu, a zatim spremite radnu knjigu.
123456 | Pod OpenWorkbookToVariable ()Dim wb Kao radna bilježnicaPostavi wb = Radne knjige.Open ("C: \ VBA mapa \ Primjer datoteke 1.xlsx")wb.SpremiKraj podm |
Dodjeljivanje radnih knjiga varijablama kada se otvore najbolji je način za praćenje vaših radnih knjiga
Radni dnevnik Otvoreni dijalog datoteka
Također možete pokrenuti dijaloški okvir Otvori datoteku radne knjige. To omogućuje korisniku da dođe do datoteke i otvori je:
12345678 | Pod OpenWorkbook ()Dim strFile As StringstrFile = Application.GetOpenFilename ()Radne knjige.Otvoreno (strFile)Kraj podm |
Kao što možete vidjeti na slici 1, s ovim pristupom korisnici mogu birati koju će datoteku otvoriti. Dijaloški okvir Otvorena datoteka može se uvelike prilagoditi. Možete zadano postaviti određenu mapu, odabrati koje će vrste datoteka biti vidljive (npr. Samo xlsx) itd. Za detaljne primjere pročitajte naš vodič u dijaloškom okviru Otvorite datoteku.
Otvorite novu radnu knjigu
Ovaj redak koda otvorit će novu radnu knjigu:
1 | Radne bilježnice.Dodaj |
Otvorite novu radnu knjigu promjenjivoj
Ovaj postupak će otvoriti novu radnu knjigu dodjeljujući je varijabli wb:
1234 | Pod OpenNewWorkbook ()Dim wb Kao radna bilježnicaPostavite wb = Radne knjige.DodajKraj podm |
Otvorite Sintaksu radne knjige
Kada koristite radne knjige. Otvorene biste mogli primijetiti da postoje mnoge opcije dostupne pri otvaranju radne knjige:
Naziv datoteke je obavezan. Svi drugi argumenti su izborni - i vjerojatno nećete morati znati većinu drugih argumenata. Evo dvije najčešće:
Otvorite radnu knjigu Samo za čitanje
Kad se radna knjiga otvori samo za čitanje, ne možete spremiti izvornu datoteku. Time se sprječava da korisnik uređuje datoteku.
1 | Radne knjige.Otvorite "C: \ VBA Mapa \ Primjer datoteke 1.xlsx",, Tačno |
Otvorite radnu knjigu zaštićenu lozinkom
Radna knjiga može biti zaštićena lozinkom. Upotrijebite ovaj kôd za otvaranje radne knjige zaštićene lozinkom:
1 | Radne knjige. Otvorite "C: \ VBA Mapa \ Primjer datoteke 1.xlsx",,, "lozinka" |
Otvorite Sintaksne bilješke radne knjige
Primijetite da smo na gornjoj slici uključili zagrade “(” za prikaz sintakse. Ako koristite zagrade pri radu s radnim knjigama. Otvorite, radnu knjigu morate dodijeliti varijabli:
1234 | Sub OpenWB ()Dim wb Kao radna bilježnicaPostavi wb = Radne knjige.Open ("C: \ VBA Mapa \ Primjer datoteke 1.xlsx", Tačno, Istina)Kraj podm |
Zatvorite radnu knjigu u VBA -i
Zatvorite određenu radnu knjigu
Slično otvaranju radne knjige, postoji nekoliko načina za zatvaranje datoteke. Ako znate koju datoteku želite zatvoriti, možete upotrijebiti sljedeći kôd:
1 | Workbooks.Close ("C: \ VBA mapa \ Primjer datoteke 1.xlsx") |
Ovaj redak koda zatvara datoteku "Primjer datoteke 1" ako je otvorena. Ako ne, vratit će grešku, pa biste se trebali pobrinuti za rješavanje pogrešaka.
Zatvorite aktivnu radnu knjigu
Ako želite zatvoriti radnu knjigu koja je trenutno aktivna, ovaj redak koda omogućit će vam da to učinite:
1 | ActiveWorkbook.Zatvorite |
Zatvorite sve otvorene radne knjige
Da biste zatvorili sve otvorene radne knjige, jednostavno upotrijebite ovaj kôd:
1 | Radne bilježnice.Zatvori |
Zatvorite prvo otvorenu radnu knjigu
Time će se zatvoriti prva otvorena/kreirana radna knjiga:
1 | Radne bilježnice (1) .Zatvori |
Zamijenite 1 s 2 da biste zatvorili drugu otvorenu / stvorenu radnu knjigu i tako dalje.
Zatvori bez spremanja
Ovo će zatvoriti radnu knjigu bez spremanja i bez prikazivanja upita za spremanje:
1 | ActiveWorkbook.Close savechanges: = False |
Spremi i zatvori bez upita
Slično, ovo će spremiti i zatvoriti radnu knjigu bez prikazivanja upita za spremanje:
1 | ActiveWorkbook.Close savechanges: = True |
Napomena: Postoji nekoliko drugih načina za označavanje hoćete li spremiti ili ne spremati radnu knjigu, kao i prikazati upite ili ne. Ovdje se o tome detaljnije raspravlja.
Ostali otvoreni primjeri radne sveske
Otvorite više novih radnih knjiga
Ovaj postupak će otvoriti više novih radnih knjiga, dodjeljujući nove radne knjige nizu:
12345678 | Pod OpenMultipleNewWorkbooks ()Dim arrWb (3) Kao radna bilježnicaDim i Kao cijeli brojZa i = 1 do 3Postavite arrWb (i) = Radne knjige.DodajSljedeći iKraj podm |
Otvorite sve radne knjige programa Excel u mapi
Ovaj postupak će otvoriti sve radne knjige programa Excel u mapi pomoću alata za odabir dijaloga Open File Dialog.
12345678910111213141516 | Sub OpenMultipleWorkbooksInFolder ()Dim wb Kao radna bilježnicaZatamni dlgFD kao FileDialogZatamni mapu kao nizDim strFileName As StringPostavi dlgFD = Application.FileDialog (msoFileDialogFolderPicker)Ako je dlgFD.Show = -1 TadastrFolder = dlgFD.SelectedItems (1) & Application.PathSeparatorstrFileName = Dir (strFolder & "*.xls*")Do While strFileName ""Postavi wb = Radne knjige.Otvori (strFolder & strFileName)strFileName = DirPetljaZavrši akoKraj podm |
Provjerite je li radna knjiga otvorena
Ovaj postupak će provjeriti je li radna knjiga otvorena:
1234567891011 | Pod TestByWorkbookName ()Dim wb Kao radna bilježnicaZa svaku wb u radnim bilježnicamaAko wb.Name = "Novi radni list Microsoft Excel.xls" ZatimMsgBox "Pronašao sam"Ovdje izađite iz pozivnog koda Sub, za sada ćemo samo izaćiZavrši akoSljedećiKraj podm |
Workbook_Open Event
VBA događaji su "okidači" koji VBA govore da pokreće određeni kôd. Događaje radne knjige možete postaviti za otvaranje, zatvaranje, prije spremanja, nakon spremanja i još mnogo toga.
Pročitajte naš udžbenik Workbook_Open Event da biste saznali više o automatskom izvođenju makronaredbi pri otvaranju radne knjige.