Ta priročnik vam bo predstavil delo z Objekt delovnega zvezka v VBA.
Objekt delovnega zvezka
Najprej morate za interakcijo z delovnimi zvezki v VBA razumeti Objekt delovnega zvezka.
Z objektom delovnega zvezka se lahko na delovne zvezke sklicujete po njihovem imenu takole:
1 | Delovni zvezki ("Book2.xlsm"). Aktivirajte |
Ta koda pa bo delovala le, če je delovni zvezek odprt. Če je delovni zvezek zaprt, boste morali navesti celotno pot delovnega zvezka:
1 | Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
Namesto da vnesete celotno pot, če je vaš želeni delovni zvezek v istem imeniku kot delovni zvezek, v katerem je shranjena vaša koda, lahko za odpiranje delovnega zvezka uporabite to kodo vrstice:
1 | Workbooks.Open (ThisWorkbook.Path & "\ book2.xlsm") |
Pri tem se uporablja predmet ThisWorkbook, o katerem bomo razpravljali v naslednjem razdelku.
Indeksna številka delovnega zvezka
Nazadnje se lahko na delovne zvezke sklicujete po njihovi »indeksni številki«. Indeksna številka delovnega zvezka ustreza vrstnemu redu odpiranja delovnega zvezka (tehnično je to njegov položaj v zbirki delovnih zvezkov).
1 | Delovni zvezki (1). Aktivirajte |
To je uporabno, če želite narediti nekaj na primer zapreti prvi (ali zadnji) odprti delovni zvezek.
Aktivirajte delovni zvezek, ActiveWorkbook in ThisWorkbook
Če je delovni zvezek NI AKTIVNO, do objektov delovnega zvezka lahko dostopate tako:
1 | Delovni zvezki ("Book2.xlsm"). Listi ("List1"). Razpon ("A1"). Vrednost = 1 |
Če pa je delovni zvezek aktiven, lahko predmet delovnega zvezka izpustite:
1 | Listi ("List1"). Obseg ("A1"). Vrednost = 1 |
Če želite komunicirati z aktivnim listom delovnega zvezka, lahko izpustite tudi predmet listov:
1 | Razpon ("A1"). Vrednost = 1 |
Aktivirajte delovni zvezek
Če želite aktivirati delovni zvezek, uporabite Aktiviraj metodo.
1 | Delovni zvezki ("Book2.xlsm"). Aktivirajte |
Zdaj lahko komunicirate s predmetom Book2, ne da bi izrecno navedli ime delovnega zvezka.
ActiveWorkbook
The ActiveWorkbook predmet se vedno sklicujejo na aktivni delovni zvezek. To je uporabno, če želite ActiveWorkbook dodeliti spremenljivki, ki jo boste uporabili pozneje.
12 | Dim wb Kot delovni zvezekNastavite wb = ActiveWorkbook |
Ta delovni zvezek
The Ta delovni zvezek objekt se vedno nanaša na delovni zvezek, kjer je shranjena tekaška koda. Če želite aktivirati to delovno knjigo, uporabite to vrstico kode:
1 | ThisWorkbook.Aktiviraj |
Odprite delovni zvezek
Če želite odpreti delovni zvezek, uporabite Odprta metoda:
1 | Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
Na novo odprti delovni zvezek bo vedno postal ActiveWorkbook, ki vam omogoča enostavno interakcijo z njim.
1 | ActiveWorkbook.Save |
Odprta metoda ima več drugih argumentov, ki vam omogočajo odpiranje samo za branje, odpiranje gesla zaščitenega delovnega zvezka in drugo. Tukaj je opisano v našem članku o odpiranju / zapiranju delovnih zvezkov.
Odpri in dodeli spremenljivki
Prav tako lahko odprete delovni zvezek in ga hkrati dodelite spremenljivki:
12 | Dim wb Kot delovni zvezekSet wb = Workbooks.Open ("C: \ Users \ StevePC2 \ Downloads \ book2.xlsm") |
Odprite pogovorno okno datotek
Odprete lahko tudi pogovorno okno Odpri datoteko:
12345678 | Sub OpenWorkbook ()Zatemni strFile As StringstrFile = Application.GetOpenFilename ()Delovni zvezki. Odpri (strFile)End Sub |
Ustvari nov (Dodaj) delovni zvezek
Ta vrstica kode bo ustvarila nov delovni zvezek:
1 | Delovni zvezki.Dodaj |
Novi delovni zvezek zdaj postane ActiveWorkbook, ki vam omogoča interakcijo z njim (npr. shranite nov delovni zvezek).
V spremenljivko dodajte nov delovni zvezek
Nov delovni zvezek lahko dodate tudi neposredno spremenljivki:
12 | Dim wb Kot delovni zvezekNastavi wb = Delovni zvezki.Dodaj |
Zaprite delovni zvezek
Zapri in shrani
Če želite shraniti delovni zvezek, uporabite Metoda zapiranja z Shrani spremembe nastavljeno na TRUE:
1 | ActiveWorkbook.Close SaveChanges: = True |
Zapri brez shranjevanja
Če želite zapreti brez shranjevanja, nastavite Shrani spremembe enako FALSE:
1 | ActiveWorkbook.Close SaveChanges: = False |
Delovni zvezek Shrani kot
The Metoda SaveAs se uporablja za shranjevanje delovnega zvezka kot.
Če želite shraniti delovni zvezek z novim imenom v istem imeniku, lahko uporabite to:
1 | ActiveWorkbook.SaveAs "new" |
kjer je "novo" novo ime datoteke.
Če želite shraniti delovni zvezek v nov imenik z določeno pripono datoteke, preprosto podajte nov imenik in ime datoteke:
1 | ActiveWorkbook.SaveAs "C: \ Users \ StevePC2 \ Downloads \ new.xlsm" |
Drugi primeri VBA delovnega zvezka
Ime delovnega zvezka
Če želite dobiti ime delovnega zvezka:
1 | MsgBox ActiveWorkbook.Name |
Zaščitite delovni zvezek
Za zaščito strukture delovnega zvezka pred urejanjem lahko uporabite datoteko Metoda zaščite (geslo neobvezno):
1 | Delovni zvezki ("book1.xlsm"). Zaščitite "geslo" |
Če želite odstraniti zaščito delovnega zvezka, uporabite Metoda UnProtect:
1 | Delovni zvezki ("book1.xlsm"). Odstrani zaščito "gesla" |
Prelistajte vse odprte delovne zvezke
Če želite prelistati vse odprte delovne zvezke:
123456789 | Sub LoopThroughWBs ()Dim wb Kot delovni zvezekZa vsako wb v delovnih zvezkihMsgBox wb.NameNaslednja wbEnd Sub |
Delovni zvezek Aktiviraj dogodek
Kodo lahko zaženete vsakič, ko se z datoteko Odprti dogodek delovnega zvezka.
Ta postopek postavite v modul tega delovnega zvezka v delovnem zvezku:
123 | Private Sub Workbook_Open ()Listi ("list1"). AktivirajteEnd Sub |
Ta postopek se aktivira List1 vsakič, ko odprete delovni zvezek.