Ebben az oktatóanyagban megtudhatja, hogyan kell a VBA segítségével többféleképpen megnyitni és bezárni az Excel munkafüzetet.
A VBA lehetővé teszi a fájlok megnyitását vagy bezárását a szokásos módszerek használatával .Nyisd ki és .Bezárás.
Ha szeretné megtudni, hogyan ellenőrizheti, hogy létezik -e fájl, mielőtt megpróbálja megnyitni a fájlt, kattintson erre a linkre: VBA fájl létezik
Nyisson meg egy munkafüzetet a VBA -ban
Nyissa meg a munkafüzetet az elérési útról
Ha tudja, hogy melyik fájlt szeretné megnyitni, akkor megadhatja annak teljes elérési útvonalát a függvényben. Itt a kód:
1 | Munkafüzetek. Nyissa meg a "C: \ VBA mappa \ Mintafájl 1.xlsx" fájlt |
Ez a kódsor megnyitja a „Mintafájl 1” fájlt a „VBA mappából”.
Nyissa meg a munkafüzetet - ActiveWorkbook
Amikor megnyit egy munkafüzetet, az automatikusan az ActiveWorkbook lesz. Az újonnan megnyitott munkafüzetre a következőképpen hivatkozhat:
1 | ActiveWorkbook.Save |
Amikor hivatkozik egy lapra vagy tartományra, és kihagyja a munkafüzet nevét, a VBA feltételezi, hogy az ActiveWorkbookra hivatkozik:
1 | Táblázatok ("Sheet1"). Name = "Input" |
Nyissa meg a munkafüzetet, és rendeljen hozzá egy változót
Megnyithat egy munkafüzetet, és közvetlenül hozzárendelheti egy objektumváltozóhoz. Ez az eljárás megnyit egy munkafüzetet a wb változót, majd mentse el a munkafüzetet.
123456 | Open Open WorkbookToVariable ()Dim wb Mint munkafüzetÁllítsa be a wb = Workbooks.Open ("C: \ VBA mappa \ Mintafájl 1.xlsx")wb. MentésEnd Sub |
A munkafüzetek nyomon követésének legjobb módja, ha a munkafüzeteket hozzárendeli a változókhoz azok megnyitásakor
Munkafüzet megnyitott fájl párbeszédpanel
A munkafüzet megnyitása párbeszédpanelt is elindíthatja. Ez lehetővé teszi a felhasználó számára, hogy navigáljon egy fájlhoz és nyissa meg:
12345678 | OpenWorkbook ()Dim strFile karakterlánckéntstrFile = Application.GetOpenFilename ()Munkafüzetek. Nyissa meg (strFile)End Sub |
Amint az 1. képen látható, ezzel a megközelítéssel a felhasználók kiválaszthatják, hogy melyik fájlt kell megnyitni. A Fájl megnyitása párbeszédpanel nagymértékben testreszabható. Alapértelmezés szerint beállíthat egy bizonyos mappát, kiválaszthatja, hogy milyen típusú fájlok láthatók (csak… xlsx), és így tovább. Részletes példákért olvassa el oktatóanyagunkat a Fájl megnyitása párbeszédpanelen.
Nyissa meg az Új munkafüzetet
Ez a kódsor új munkafüzetet nyit meg:
1 | Munkafüzetek |
Nyissa meg az új munkafüzetet a változóhoz
Ez az eljárás új munkafüzetet nyit meg, és hozzárendeli a wb változóhoz:
1234 | Sub OpenNewWorkbook ()Dim wb Mint munkafüzetÁllítsa be a wb = Workbooks.AddEnd Sub |
Nyissa meg a munkafüzet szintaxisát
A munkafüzetek használatakor. Nyissa meg, ha észreveszi, hogy a munkafüzet megnyitásakor számos lehetőség áll rendelkezésre:
A fájlnév megadása kötelező. Minden más érv opcionális - és valószínűleg nem kell ismernie a többi érvet. Íme a két leggyakoribb:
Nyissa meg a Csak olvasható munkafüzetet
Amikor a munkafüzet csak olvasható állapotban van megnyitva, nem mentheti az eredeti fájlt. Ez megakadályozza, hogy a felhasználó szerkeszthesse a fájlt.
1 | Munkafüzetek.Nyissa meg a "C: \ VBA mappa \ Mintafájl 1.xlsx",, Igaz |
Nyissa meg a jelszóval védett munkafüzetet
Lehet, hogy a munkafüzet jelszóval védett. A jelszóval védett munkafüzet megnyitásához használja ezt a kódot:
1 | Munkafüzetek. Nyissa meg a "C: \ VBA mappa \ Mintafájl 1.xlsx",,, "jelszót" |
Nyissa meg a munkafüzet szintaxis jegyzeteit
Figyelje meg, hogy a fenti képen egy zárójelet (") vettünk fel a szintaxis megjelenítéséhez. Ha zárójelet használ a munkafüzetekkel való munkához. Nyissa meg, hozzá kell rendelnie a munkafüzetet egy változóhoz:
1234 | OpenWB al ()Dim wb Mint munkafüzetSet wb = Workbooks.Open ("C: \ VBA mappa \ Mintafájl 1.xlsx", igaz, igaz)End Sub |
Zárjon be egy munkafüzetet a VBA -ban
Zárja be az adott munkafüzetet
A munkafüzet megnyitásához hasonlóan többféle módon is bezárható a fájl. Ha tudja, melyik fájlt szeretné bezárni, akkor használja a következő kódot:
1 | Workbooks.Close ("C: \ VBA mappa \ Mintafájl 1.xlsx") |
Ez a kódsor bezárja az „1. mintafájl” fájlt, ha megnyílik. Ha nem, akkor hibát ad vissza, ezért ügyelnie kell a hibakezelésre.
Zárja be az aktív munkafüzetet
Ha be szeretné zárni a jelenleg aktív munkafüzetet, akkor ez a kódsor lehetővé teszi ezt:
1 | ActiveWorkbook.Zár |
Zárjon be minden nyitott munkafüzetet
Az összes nyitott munkafüzet bezárásához egyszerűen használja ezt a kódot:
1 | Munkafüzetek. Bezárás |
Zárja be az első megnyitott munkafüzetet
Ezzel bezárja az első megnyitott/létrehozott munkafüzetet:
1 | Munkafüzetek (1). Zárja be |
Cserélje le az 1 -et a 2 -re a második megnyitott / létrehozott munkafüzet bezárásához és így tovább.
Bezárás mentés nélkül
Ezzel bezárja a munkafüzetet mentés és a mentési prompt megjelenítése nélkül:
1 | ActiveWorkbook.Close savechanges: = Hamis |
Mentés és bezárás kérés nélkül
Hasonlóképpen ez menti és bezárja a munkafüzetet a mentési felszólítás megjelenítése nélkül:
1 | ActiveWorkbook.Close savechanges: = Igaz |
Megjegyzés: Számos más módon is jelezheti, hogy mentse vagy ne mentse a munkafüzetet, és azt is, hogy megjelenítse -e az utasításokat. Ezt itt részletesebben tárgyaljuk.
Egyéb nyitott munkafüzet példák
Több új munkafüzet megnyitása
Ez az eljárás több új munkafüzetet nyit meg, és hozzárendeli az új munkafüzeteket egy tömbhöz:
12345678 | Sub OpenMultipleNewWorkbooks ()Dim arrWb (3) MunkafüzetkéntDim i As IntegerI = 1 -től 3 -igÁllítsa be az arrWb (i) = Workbooks.AddKövetkező iEnd Sub |
Nyissa meg az összes Excel munkafüzetet egy mappában
Ez az eljárás megnyitja az összes Excel -munkafüzetet egy mappában a Fájl megnyitása párbeszédablak választó használatával.
12345678910111213141516 | Sub OpenMultipleWorkbooksInFolder ()Dim wb Mint munkafüzetDim dlgFD FileDialog névenDim strFolder karakterlánckéntDim strFileName mint karakterláncÁllítsa be a dlgFD = Application.FileDialog (msoFileDialogFolderPicker)Ha dlgFD.Show = -1 AkkorstrFolder = dlgFD.SelectedItems (1) & Application.PathSeparatorstrFileName = Irány (strFolder & "*.xls*")Csináld közben strFileName ""Wb = Munkafüzetek beállítása. Nyissa meg (strFolder & strFileName)strFileName = IrányHurokVége HaEnd Sub |
Ellenőrizze, hogy a munkafüzet nyitva van -e
Ez az eljárás teszteli, hogy a munkafüzet nyitva van -e:
1234567891011 | Sub TestByWorkbookName ()Dim wb Mint munkafüzetMinden wb -hez a munkafüzetekbenHa wb.Name = "Új Microsoft Excel munkalap.xls" AkkorMsgBox "Megtaláltam"Itt lépjen ki a Sub hívó kódjából, egyelőre csak kilépünkVége HaKövetkezőEnd Sub |
Workbook_Open Esemény
A VBA -események olyan „trigger” -ek, amelyek arra utasítják a VBA -t, hogy futtasson bizonyos kódot. Beállíthat munkafüzet -eseményeket nyitásra, zárásra, mentés előtt, mentés után stb.
Olvassa el a Workbook_Open Event oktatóanyagunkat, ha többet szeretne megtudni a makrók automatikus futtatásáról a munkafüzet megnyitásakor.