VBA Odpiranje / Zapiranje delovnega zvezka

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.

Vam bo pomagal razvoj spletnega mesta, ki si delijo stran s svojimi prijatelji

wave wave wave wave wave