V tomto návode sa naučíte používať VBA na otváranie a zatváranie zošita programu Excel niekoľkými spôsobmi.
VBA vám umožňuje otvárať alebo zatvárať súbory pomocou štandardných metód .Otvorené a .Zavrieť.
Ak sa chcete dozvedieť, ako skontrolovať, či súbor existuje, skôr ako sa ho pokúsite otvoriť, môžete kliknúť na tento odkaz: Súbor VBA existuje
Otvorte zošit vo VBA
Otvorte zošit z cesty
Ak viete, ktorý súbor chcete otvoriť, môžete vo funkcii zadať jeho úplný názov cesty. Tu je kód:
1 | Zošity. Otvorte "C: \ Priečinok VBA \ Ukážkový súbor 1.xlsx" |
Tento riadok kódu otvára súbor „Ukážkový súbor 1“ zo priečinka „VBA Folder“.
Otvorený zošit - ActiveWorkbook
Keď zošit otvoríte, automaticky sa stane ActiveWorkbookom. Na novo otvorený zošit môžete odkazovať takto:
1 | ActiveWorkbook.Save |
Keď odkazujete na hárok alebo rozsah a vynecháte názov zošita, VBA bude predpokladať, že máte na mysli ActiveWorkbook:
1 | Tabuľky („List1“). Názov = „Vstup“ |
Otvorte zošit a priraďte premennej
Môžete tiež otvoriť zošit a priradiť ho priamo k premennej objektu. Tento postup otvorí zošit do súboru wb premennú a potom uložte zošit.
123456 | Sub OpenWorkbookToVariable ()Dim wb ako zošitNastaviť wb = zošity. Otvorené ("C: \ Priečinok VBA \ Ukážkový súbor 1.xlsx")wb. UložiťKoniec pod |
Priradenie zošitov k premenným pri ich otvorení je najlepší spôsob, ako sledovať svoje zošity
Dialógové okno Otvoriť zošit
Môžete tiež spustiť zošit Dialógové okno Otvoriť súbor. To umožňuje používateľovi prejsť na súbor a otvoriť ho:
12345678 | Sub OpenWorkbook ()Dim strFile ako reťazecstrFile = Application.GetOpenFilename ()Zošity. Otvorené (strFile)Koniec pod |
Ako vidíte na obrázku 1, pomocou tohto prístupu si používatelia môžu vybrať, ktorý súbor otvoria. Dialógové okno Otvoriť súbor je možné výrazne prispôsobiť. Môžete predvolene nastaviť určitý priečinok, vybrať, ktoré typy súborov sú viditeľné (iba ex … xlsx) a ďalšie. Podrobné príklady nájdete v našom návode v dialógovom okne Otvorený súbor.
Otvorte nový zošit
Tento riadok kódu otvorí nový zošit:
1 | Zošity. Pridať |
Otvoriť nový zošit na premennú
Tento postup otvorí nový zošit a priradí ho k premennej wb:
1234 | Sub OpenNový pracovný zošit ()Dim wb ako zošitNastaviť wb = zošity. PridaťKoniec pod |
Otvorte syntax zošita
Keď používate zošity. Otvorené, môžete si všimnúť, že pri otváraní zošita je k dispozícii veľa možností:
Názov súboru je povinný. Všetky ostatné argumenty sú voliteľné - a pravdepodobne nebudete musieť poznať väčšinu ostatných argumentov. Tu sú dve najbežnejšie:
Otvoriť zošit iba na čítanie
Keď je zošit otvorený len na čítanie, nemôžete uložiť pôvodný súbor. To znemožňuje úpravu súboru používateľom.
1 | Zošity. Otvorte "C: \ Priečinok VBA \ Ukážkový súbor 1.xlsx",, True |
Otvorte zošit chránený heslom
Zošit môže byť chránený heslom. Tento kód použite na otvorenie zošita chráneného heslom:
1 | Zošity. Otvorte "C: \ Priečinok VBA \ Ukážkový súbor 1.xlsx",,, "heslo" |
Otvorte poznámky k syntaxi zošita
Všimnite si, že na obrázku vyššie sme zahrnuli zátvorku „(“ na zobrazenie syntaxe. Ak používate zátvorky pri práci so zošitmi. Otvorte, zošit musíte priradiť k premennej:
1234 | Sub OpenWB ()Dim wb ako zošitNastaviť wb = zošity. Otvorené ("C: \ Priečinok VBA \ Ukážkový súbor 1.xlsx", True, True)Koniec pod |
Zatvorte zošit vo VBA
Zavrieť konkrétny zošit
Podobne ako pri otváraní zošita existuje niekoľko spôsobov, ako zavrieť súbor. Ak viete, ktorý súbor chcete zavrieť, môžete použiť nasledujúci kód:
1 | Workbooks.Close ("C: \ Priečinok VBA \ Vzorový súbor 1.xlsx") |
Tento riadok kódu zatvorí súbor „Ukážkový súbor 1“, ak je otvorený. Ak nie, vráti chybu, takže by ste sa mali o riešenie chýb postarať.
Zatvorte aktívny zošit
Ak chcete zavrieť aktuálne aktívny zošit, tento riadok kódu vám to umožní:
1 | ActiveWorkbook.Zavrieť |
Zatvorte všetky otvorené zošity
Na zatvorenie všetkých otvorených zošitov môžete jednoducho použiť tento kód:
1 | Pracovné zošity. Zavrieť |
Zatvoriť prvý otvorený zošit
Tým sa zatvorí prvý otvorený/vytvorený zošit:
1 | Zošity (1). Zavrieť |
Nahradením 1 číslom 2 zavriete druhý otvorený / vytvorený zošit a podobne.
Zatvoriť bez uloženia
Tým sa zošit zavrie bez uloženia a bez zobrazenia výzvy na uloženie:
1 | ActiveWorkbook.Zavrieť savechanges: = False |
Uložiť a zavrieť bez výzvy
Podobne to uloží a zatvorí zošit bez zobrazenia výzvy na uloženie:
1 | ActiveWorkbook.Zavrieť uložiť zmeny: = Pravda |
Poznámka: Existuje niekoľko ďalších spôsobov, ako určiť, či sašit má alebo nemá uložiť, a tiež, či sa majú zobrazovať výzvy alebo nie. Tu je to podrobnejšie prediskutované.
Ďalšie otvorené zošity Príklady
Otvorte viac nových zošitov
Tento postup otvorí niekoľko nových zošitov a priradí nové zošity k poľu:
12345678 | Sub OpenMultipleNewWorkbooks ()Dim arrWB (3) Ako zošitDim i As IntegerPre i = 1 až 3Nastaviť arrWb (i) = zošityĎalej iKoniec pod |
Otvorte všetky zošity programu Excel v priečinku
Tento postup otvorí všetky zošity programu Excel v priečinku pomocou výberu dialógového okna Otvoriť súbor.
12345678910111213141516 | Sub OpenMultipleWorkbooksInFolder ()Dim wb ako zošitDim dlgFD ako FileDialogDim strFolder ako reťazecDim strFileName ako reťazecNastaviť dlgFD = Application.FileDialog (msoFileDialogFolderPicker)Ak dlgFD.Show = -1 PotomstrFolder = dlgFD.SelectedItems (1) & Application.PathSeparatorstrFileName = Dir (strFolder & "*.xls*")Urobiť pri strFileName ""Nastaviť wb = zošity. Otvorené (strFolder & strFileName)strFileName = DirSlučkaKoniec AkKoniec pod |
Skontrolujte, či je zošit otvorený
Tento postup otestuje, či je zošit otvorený:
1234567891011 | Sub TestByWorkbookName ()Dim wb ako zošitPre každý wb v zošitochAk wb.Name = "Nový pracovný list programu Microsoft Excel. Xls", potomMsgBox „Našlo sa“Tu ukončite volací kód Sub ', zatiaľ iba skončímeKoniec AkĎalšieKoniec pod |
Zošit_Otvorená udalosť
Udalosti VBA sú „spúšťače“, ktoré hovoria VBA, aby spustila určitý kód. Udalosti zošita môžete nastaviť na otváranie, zatváranie, pred uložením, po uložení a ďalšie.
Prečítajte si náš návod Workbook_Open Event, aby ste sa dozvedeli viac o automatickom spúšťaní makier pri otvorení zošita.