V tej vadnici se boste naučili uporabljati VBA za odpiranje in zapiranje Excelovega delovnega zvezka na več načinov.
VBA vam omogoča odpiranje ali zapiranje datotek po standardnih metodah .Odprto in .Zapri.
Če se želite naučiti preveriti, ali datoteka obstaja, preden poskusite odpreti datoteko, lahko kliknete to povezavo: Datoteka VBA obstaja
Odprite delovni zvezek v VBA
Odprite delovni zvezek s poti
Če veste, katero datoteko želite odpreti, lahko v funkciji podate njeno polno ime poti. Tukaj je koda:
1 | Delovni zvezki. Odprite "C: \ VBA Folder \ Sample file 1.xlsx" |
Ta vrstica kode odpre datoteko »Vzorčna datoteka 1« iz mape »VBA«.
Odprite delovni zvezek - ActiveWorkbook
Ko odprete delovni zvezek, samodejno postane ActiveWorkbook. Na novo odprti delovni zvezek se lahko sklicujete tako:
1 | ActiveWorkbook.Save |
Ko se sklicujete na list ali obseg in izpustite ime delovnega zvezka, bo VBA domneval, da se nanašate na ActiveWorkbook:
1 | Listi ("List1"). Name = "Vnos" |
Odprite delovni zvezek in ga dodelite spremenljivki
Odprete lahko tudi delovni zvezek in ga dodelite neposredno spremenljivki objekta. Ta postopek bo odprl delovni zvezek za wb spremenljivko in nato shranite delovni zvezek.
123456 | Sub OpenWorkbookToVariable ()Dim wb Kot delovni zvezekSet wb = Workbooks.Open ("C: \ VBA Folder \ Sample file 1.xlsx")wb.ShraniEnd Sub |
Dodelitev delovnih zvezkov spremenljivkam, ko se odprejo, je najboljši način za spremljanje vaših delovnih zvezkov
Odprto pogovorno okno datotek delovnega zvezka
Prav tako lahko sprožite pogovorno okno Odpri datoteko delovnega zvezka. To uporabniku omogoča, da se pomakne do datoteke in jo odpre:
12345678 | Sub OpenWorkbook ()Zatemni strFile As StringstrFile = Application.GetOpenFilename ()Delovni zvezki. Odpri (strFile)End Sub |
Kot lahko vidite na sliki 1, lahko uporabniki s tem pristopom izberejo, katero datoteko bodo odprli. Pogovorno okno Open File je mogoče močno prilagoditi. Privzeto lahko nastavite na določeno mapo, izberete, katere vrste datotek so vidne (npr. Samo xlsx) in drugo. Za podrobne primere preberite naš vodič v pogovornem oknu Open File.
Odprite Nov delovni zvezek
Ta vrstica kode bo odprla nov delovni zvezek:
1 | Delovni zvezki.Dodaj |
Odpri nov delovni zvezek za spremenljivko
Ta postopek bo odprl nov delovni zvezek in ga dodelil spremenljivki wb:
1234 | Sub OpenNewWorkbook ()Dim wb Kot delovni zvezekNastavi wb = Delovni zvezki.DodajEnd Sub |
Odprite skladnjo delovnega zvezka
Ko uporabljate delovne zvezke. Odprite boste morda opazili, da je pri odpiranju delovnega zvezka na voljo veliko možnosti:
Ime datoteke je obvezno. Vsi drugi argumenti so neobvezni - večine drugih argumentov vam verjetno ne bo treba poznati. Tu sta dva najpogostejša:
Odprite delovni zvezek samo za branje
Ko je delovni zvezek odprt samo za branje, ne morete shraniti izvorne datoteke. To preprečuje, da bi uporabnik urejal datoteko.
1 | Delovni zvezki. Odprite "C: \ VBA Folder \ Sample file 1.xlsx",, True |
Odprite delovni zvezek, zaščiten z geslom
Delovni zvezek je morda zaščiten z geslom. Za odpiranje gesla zaščitenega delovnega zvezka uporabite to kodo:
1 | Delovni zvezki.Odprite "C: \ VBA Folder \ Sample file 1.xlsx",,, "password" |
Odprite opombe o skladnji delovnega zvezka
Upoštevajte, da smo na zgornji sliki za prikaz skladnje vključili oklepaj »(«. Če pri delu z delovnimi zvezki uporabljate oklepaje. Odprite, morate delovni zvezek dodeliti spremenljivki:
1234 | Sub OpenWB ()Dim wb Kot delovni zvezekSet wb = Workbooks.Open ("C: \ VBA Folder \ Sample file 1.xlsx", True, True)End Sub |
Zaprite delovni zvezek v VBA
Zaprite poseben delovni zvezek
Podobno kot pri odpiranju delovnega zvezka obstaja več načinov zapiranja datoteke. Če veste, katero datoteko želite zapreti, lahko uporabite naslednjo kodo:
1 | Workbooks.Close ("C: \ VBA Folder \ Sample file 1.xlsx") |
Ta vrstica kode zapre datoteko »Vzorčna datoteka 1«, če je odprta. Če ne, bo vrnil napako, zato morate poskrbeti za odpravljanje napak.
Zaprite aktivni delovni zvezek
Če želite zapreti delovni zvezek, ki je trenutno aktiven, vam bo ta vrstica kode to omogočila:
1 | ActiveWorkbook.Zapri |
Zaprite vse odprte delovne zvezke
Če želite zapreti vse odprte delovne zvezke, lahko preprosto uporabite to kodo:
1 | Delovni zvezki. Zapri |
Zaprite prvi odprti delovni zvezek
S tem boste zaprli prvi odprti/ustvarjeni delovni zvezek:
1 | Delovni zvezki (1). Zapri |
Zamenjajte 1 z 2, da zaprete drugi odprti / ustvarjeni delovni zvezek itd.
Zapri brez shranjevanja
S tem boste zaprli delovni zvezek brez shranjevanja in brez prikaza poziva za shranjevanje:
1 | ActiveWorkbook.Close savechanges: = False |
Shrani in zapri brez poziva
Podobno bo to shranilo in zaprlo delovni zvezek, ne da bi prikazalo poziv za shranjevanje:
1 | ActiveWorkbook.Close savechanges: = True |
Opomba: Obstaja več drugih načinov, kako določiti, ali želite shraniti ali ne shraniti delovni zvezek, in tudi, ali naj se prikažejo pozivi ali ne. To je tukaj podrobneje obravnavano.
Drugi odprti primeri delovnega zvezka
Odprite več novih delovnih zvezkov
Ta postopek bo odprl več novih delovnih zvezkov in nove delovne zvezke dodelil matriki:
12345678 | Sub OpenMultipleNewWorkbooks ()Dim arrWb (3) Kot delovni zvezekDim i kot celo številoZa i = 1 do 3Nastavi arrWb (i) = Delovni zvezki.DodajNaprej iEnd Sub |
Odprite vse Excelove delovne zvezke v mapi
Ta postopek odpre vse Excelove delovne zvezke v mapi z izbirnikom Odpri pogovorno okno datotek.
12345678910111213141516 | Sub OpenMultipleWorkbooksInFolder ()Dim wb Kot delovni zvezekZatemni dlgFD kot FileDialogZatemni str mapo kot nizZatemni strFileName kot nizNastavi dlgFD = Application.FileDialog (msoFileDialogFolderPicker)Če je dlgFD.Show = -1 PotemstrFolder = dlgFD.SelectedItems (1) & Application.PathSeparatorstrFileName = Dir (strFolder & "*.xls*")Naredi strFileName ""Nastavi wb = Delovni zvezki. Odpri (strFolder & strFileName)strFileName = DirZankaKonec ČeEnd Sub |
Preverite, ali je delovni zvezek odprt
Ta postopek bo preveril, ali je delovni zvezek odprt:
1234567891011 | Pod TestByWorkbookName ()Dim wb Kot delovni zvezekZa vsako wb v delovnih zvezkihČe wb.Name = "Nov delovni list Microsoft Excel.xls" NatoMsgBox "Našel sem"Tukaj zapustite klicno kodo Sub, za zdaj bomo samo izstopiliKonec ČeNaslednjiEnd Sub |
Delovni zvezek_Odprti dogodek
Dogodki VBA so »sprožilci«, ki VBA sporočijo, naj izvaja določeno kodo. Dogodke v delovnem zvezku lahko nastavite za odpiranje, zapiranje, pred shranjevanjem, po shranjevanju in drugo.
Preberite našo vadnico Workbook_Open Event, če želite izvedeti več o samodejnem izvajanju makrov, ko odprete delovni zvezek.