VBA Nyitott / Bezáró munkafüzet

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.

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave