VBA práca so zošitmi (objekt zošita)

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.

wave wave wave wave wave