Táto príručka vám predstaví prácu s programom Objekt zošita vo VBA.
Objekt zošita
Po prvé, aby ste mohli pracovať so zošitmi vo VBA, musíte porozumieť Objekt zošita.
S objektom zošita môžete na zošity odkazovať podľa ich názvu takto:
1 | Zošity („Book2.xlsm“). Aktivujte |
Tento kód však bude fungovať iba vtedy, ak je zošit otvorený. Ak je zošit zatvorený, budete musieť poskytnúť úplnú cestu k zošitu:
1 | Zošity. Otvorené ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
Ak nie je požadovaný zošit v tom istom adresári ako zošit, kde je uložený váš kód, môžete namiesto zadania úplnej cesty použiť tento riadkový kód na otvorenie zošita:
1 | Zošity. Otvorené (ThisWorkbook.Path & "\ book2.xlsm") |
Využíva sa tým objekt ThisWorkbook, o ktorom budeme diskutovať v nasledujúcej časti.
Indexové číslo zošita
Napokon na zošity môžete odkazovať podľa ich „indexového čísla“. Indexové číslo zošita zodpovedá poradiu, v ktorom bol zošit otvorený (technicky je to pozícia zošita v zbierke zošitov).
1 | Zošity (1). Aktivovať |
Je to užitočné, ak chcete urobiť niečo ako zatvorenie prvého (alebo posledného) otvoreného zošita.
Aktivujte zošit, ActiveWorkbook a ThisWorkbook
Ak je zošit NEAKTÍVNY, K objektom zošita máte prístup takto:
1 | Zošity ("Kniha2.xlsm"). Listy ("List1"). Rozsah ("A1"). Hodnota = 1 |
Ak je však zošit aktívny, môžete objekt zošita vynechať:
1 | Tabuľky („List1“). Rozsah („A1“). Hodnota = 1 |
A ak chcete pracovať s aktívnym hárkom zošita, môžete tiež vynechať objekt hárkov:
1 | Rozsah („A1“). Hodnota = 1 |
Aktivujte zošit
Na aktiváciu zošita použite Aktivujte metódu.
1 | Zošity („Book2.xlsm“). Aktivujte |
Teraz môžete pracovať s objektmi Book2 bez toho, aby ste výslovne uviedli názov zošita.
ActiveWorkbook
The ActiveWorkbook objekt vždy odkazuje na aktívny zošit. Je to užitočné, ak chcete ActiveWorkbook priradiť k premennej, ktorú chcete použiť neskôr.
12 | Dim wb ako zošitNastaviť wb = ActiveWorkbook |
Táto pracovná kniha
The Táto pracovná kniha Objekt vždy odkazuje na zošit, kde je uložený spustený kód. Na aktiváciu tejto pracovnej knihy použite tento riadok kódu:
1 | ThisWorkbook.Activate |
Otvorte zošit
Na otvorenie zošita použite Otvorená metóda:
1 | Zošity. Otvorené ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
Novo otvorený zošit sa vždy stane príponou ActiveWorkbook, čo vám umožní jednoduchú interakciu s ním.
1 | ActiveWorkbook.Save |
Otvorená metóda má niekoľko ďalších argumentov, ktoré vám umožňujú otvoriť iba na čítanie, otvoriť zošit chránený heslom a ďalšie. Je to popísané tu v našom článku o otváraní / zatváraní zošitov.
Otvoriť a priradiť premennej
Môžete tiež otvoriť zošit a priradiť ho k premennej súčasne:
12 | Dim wb ako zošitNastaviť wb = zošity. Otvorené ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
Otvorte dialógové okno Súbor
Dialógové okno Otvoriť súbor môžete spustiť aj takto:
12345678 | Sub OpenWorkbook ()Dim strFile ako reťazecstrFile = Application.GetOpenFilename ()Zošity. Otvorené (strFile)Koniec pod |
Vytvoriť nový (pridať) zošit
Tento riadok kódu vytvorí nový zošit:
1 | Zošity. Pridať |
Nový zošit sa teraz stáva príponou ActiveWorkbook, čo vám umožní s ním pracovať (napr. uložiť nový zošit).
Pridať nový zošit do premennej
Nový zošit môžete tiež pridať priamo do premennej:
12 | Dim wb ako zošitNastaviť wb = zošity. Pridať |
Zavrieť zošit
Zatvoriť a uložiť
Na zatvorenie zošita pomocou uloženia použite Metóda zatvorenia s Uložiť zmeny nastaviť na PRAVDU:
1 | ActiveWorkbook.Zavrieť SaveChanges: = True |
Zatvoriť bez uloženia
Ak chcete zavrieť bez uloženia, nastavte Uložiť zmeny rovná sa FALSE:
1 | ActiveWorkbook.Close SaveChanges: = False |
Zošit Uložiť ako
The Metóda SaveAs slúži na uloženie zošita ako.
Ak chcete uložiť zošit s novým názvom do rovnakého adresára, môžete použiť toto:
1 | ActiveWorkbook.SaveAs „nový“ |
kde „nový“ je nový názov súboru.
Ak chcete zošit uložiť do nového adresára s konkrétnou príponou súboru, zadajte nový adresár a názov súboru:
1 | ActiveWorkbook.SaveAs "C: \ Users \ StevePC2 \ Downloads \ new.xlsm" |
Ďalšie príklady zošita VBA
Názov zošita
Ak chcete získať názov zošita:
1 | MsgBox ActiveWorkbook.Name |
Chráňte zošit
Na ochranu štruktúry zošita pred úpravami môžete použiť Metóda ochrany (heslo voliteľné):
1 | Zošity ("book1.xlsm"). Chráňte "heslo" |
Na odstránenie zošita použite Metóda UnProtect:
1 | Zošity ("book1.xlsm"). Zrušte ochranu "hesla" |
Zopakujte si všetky otvorené zošity
Ak chcete prejsť cez všetky otvorené zošity:
123456789 | Sub LoopThroughWBs ()Dim wb ako zošitPre každý wb v zošitochMsgBox wb. MenoDalsie wbKoniec pod |
Udalosť aktivujúca zošit
Niektorý kód môžete spustiť vždy, keď sa konkrétny zošit otvorí pomocou súboru Otvorená udalosť zošita.
Vykonajte tento postup vo svojom zošite modul ThisWorkbook:
123 | Súkromný čiastkový zošit_Otvorený ()Tabuľky ("sheet1"). AktivujteKoniec pod |
Tento postup sa aktivuje List 1 pri každom otvorení zošita.