Ez a végső útmutató a Táblázatok / Munkalapok használatához Excelben.
Ennek az útmutatónak az alján elkészítettünk egy lapot a közös parancsokkal a lapokkal való munkához.
Lapok vs. Feladatlapok
A VBA segítségével kétféleképpen lehet hivatkozni a Táblázatokra. Az első a Sheets objektummal kapcsolatos:
1 | Táblázatok ("Sheet1"). Aktiválás |
A másik a Munkalapok objektummal van:
1 | Munkalapok ("Sheet1"). Aktiválás |
Az esetek 99% -ában ez a két objektum azonos. Valójában, ha online keresett VBA -kódpéldákat, valószínűleg mindkét használt objektumot látta. Itt a különbség:
A Táblázatgyűjtemény feladatlapokat és diagramlapokat tartalmaz.
Tehát használja a Táblázatokat, ha rendszeres munkalapokat és diagramlapokat szeretne tartalmazni. Használjon munkalapokat, ha ki szeretné zárni a diagramlapokat. Az útmutató további részében a Táblázatokat és Munkalapokat felcserélve használjuk.
Hivatkozó lapok
A Táblázatokra való hivatkozásnak többféle módja van:
- ActiveSheet
- Lap lap neve
- Lap indexszáma
- Lapkód neve
ActiveSheet
Az ActiveSheet a jelenleg aktív munkalap. Más szóval, ha szüneteltette a kódot, és ránézett az Excelre, akkor a lap látható. Az alábbi kódpélda egy üzenetlapot jelenít meg az ActiveSheet nevével.
1 | MsgBox ActiveSheet.Name |
Lap neve
Valószínűleg Ön ismeri leginkább a Táblázatok hivatkozást a lap nevük alapján:
1 | Táblázatok ("TabName"). Aktiválás |
Lap indexszáma
A Lapindex szám a munkafüzetben lévő lap pozíciója. 1 az első lap. 2 a második lap stb.:
1 | Táblázatok (1). Aktiválás |
Lap indexszáma - utolsó munkalap a munkafüzetben
A munkafüzet utolsó lapjára való hivatkozáshoz használja a Táblázatokat. Számlálja az utolsó indexszámot:
1 | Táblázatok (Sheets.Count). Aktiválás |
„Kódnév” lap
A lapkód neve az objektum neve a VBA -ban:
1 | Kódnév. Aktiválás |
Hivatkozó lapok más munkafüzetekben
Más munkafüzetekben is könnyű hivatkozni a Táblázatokra. Ehhez a Munkafüzetek objektumot kell használnia:
1 | Munkafüzetek ("VBA_Examples.xlsm"). Munkalapok ("Sheet1"). Aktiválás |
Fontos: A munkafüzetnek nyitva kell lennie, mielőtt hivatkozhat a Táblázatokra.
Aktiválás vs. Lap kiválasztása
Egy másik cikkben mindent megvitatunk a lapok aktiválásával és kiválasztásával kapcsolatban. A rövid verzió a következő:
Amikor aktivál egy lapot, az ActiveSheet lesz. Ezt a lapot látná, ha megnézi az Excel programját. Egyszerre csak egy lap aktiválható.
Lap aktiválása
1 | Táblázatok ("Sheet1"). Aktiválás |
Amikor kiválaszt egy lapot, az is ActiveSheet lesz. Azonban egyszerre több lapot is kiválaszthat. Ha egyszerre több lapot választ ki, a „felső” lap az ActiveSheet. A kiválasztott lapokon belül azonban átkapcsolhatja az ActiveSheet -et.
Válasszon egy lapot
1 | Táblázatok ("Sheet1"). Válassza ki |
Válassza a Több lap lehetőséget
Egy tömb segítségével egyszerre több lapot jelölhet ki:
1 | Munkalapok (tömb ("Sheet2", "Sheet3")). Válassza ki |
Munkalap változó
A munkalap hozzárendelése egy változóhoz lehetővé teszi, hogy a munkalapra a változó neve alapján hivatkozzon. Ez sok gépelést takaríthat meg, és megkönnyítheti a kód olvasását. Sok más oka is lehet a változók használatának.
A munkalap változójának deklarálása:
1 | Dim ws munkalapként |
Munkalap hozzárendelése egy változóhoz:
1 | Set ws = Sheets ("Sheet1") |
Most hivatkozhat a munkalap változójára a kódjában:
1 | ws. Aktiválás |
Tekintse át a munkafüzet összes lapját
A munkalap -változók elengedhetetlenek, ha a munkafüzet összes munkalapját szeretné végigjárni. Ennek legegyszerűbb módja a következő:
12345 | Dim ws munkalapkéntA munkalapok minden egyes w -jéhezMsgBox ws.nameKövetkező ws |
Ez a kód végigmegy a munkafüzet összes munkalapján, és megjeleníti az egyes munkalapok nevét egy üzenetmezőben. A munkafüzet összes lapjának áthurkolása nagyon hasznos, ha egyszerre több munkalapot reteszel / felold, vagy elrejt / feltár.
Munkalap védelem
Munkafüzet védelem
A munkafüzet -védelem lezárja a munkafüzetet a szerkezeti változásoktól, például a munkalapok hozzáadásától, törlésétől, áthelyezésétől vagy elrejtésétől.
A VBA használatával bekapcsolhatja a munkafüzet -védelmet:
1 | ActiveWorkbook.Protect Password: = "Jelszó" |
vagy tiltsa le a munkafüzet védelmét:
1 | ActiveWorkbook.UnProtect Password: = "Jelszó" |
Megjegyzés: Jelszó nélkül is védheti / feloldhatja a védelmet a Jelszó argumentum kihagyásával:
1 | ActiveWorkbook.Védelem |
Munkalap védelem
A munkalap szintű védelem megakadályozza az egyes munkalapok módosítását.
Munkalap védelme
1 | Munkalapok ("Sheet1"). Védje a "Jelszót" |
A munkalap védelmének feloldása
1 | Munkalapok ("Sheet1"). A "Jelszó" védelmének feloldása |
Számos lehetőség áll rendelkezésre a munkalapok védelmére (engedélyezze a formázási változtatásokat, engedélyezze a felhasználóknak a sorok beszúrását stb.). Javasoljuk, hogy a Macro Recorder segítségével rögzítse a kívánt beállításokat.
Itt részletesen tárgyaljuk a munkalapok védelmét.
Munkalap látható tulajdonsága
Lehet, hogy már tudja, hogy a munkalapok elrejthetők:
Valójában három munkalap láthatósági beállítás létezik: látható, rejtett és Nagyon rejtett.A rejtett lapokat minden rendes Excel -felhasználó feloldhatja - ha jobb gombbal kattint a munkalap fülén (fent látható). A VeryHidden lapok csak VBA kóddal vagy a VBA szerkesztőben nyithatók meg. A munkalapok elrejtéséhez / megjelenítéséhez használja a következő kódpéldákat:
Munkalap elrejtése
1 | Munkalapok ("Sheet1"). Visible = xlSheetVisible |
Munkalap elrejtése
1 | Munkalapok ("Sheet1"). Látható = xlSheetHidden |
Nagyon elrejtett munkalap
1 | Munkalapok ("Sheet1"). Visible = xlSheetVeryHidden |
Munkalap szintű események
Az események olyan eseményindítók, amelyek az „Esemény eljárások” futtatását okozhatják. Például előidézheti a kód futtatását minden alkalommal, amikor a munkalap bármely celláját megváltoztatják, vagy amikor egy munkalapot aktiválnak.
A munkalap eseményeit egy munkalap modulba kell helyezni:
Számos munkalapi esemény van. A teljes lista megtekintéséhez lépjen a munkalap modulba, válassza ki a „Munkalap” lehetőséget az első legördülő menüből. Ezután válasszon egy esemény eljárást a második legördülő menüből a modulba való beillesztéshez.
Munkalap Esemény aktiválása
A munkalap aktiváló eseményei a munkalap minden megnyitásakor futnak.
123 | Privát almunkalap_Activate ()Tartomány ("A1"). Válassza kiEnd Sub |
Ez a kód az A1 cellát választja ki (a nézetterület visszaállítása a munkalap bal felső sarkába) minden munkalap megnyitásakor.
Munkalap módosítási esemény
A munkalap módosítási eseményei mindig futnak, amikor a cella értéke megváltozik a munkalapon. További információért olvassa el oktatóanyagunkat a Munkalap módosítási eseményekről.
Feladatlap Cheat Sheet
Az alábbiakban talál egy csalólapot, amely általános kódpéldákat tartalmaz a VBA lapokkal való munkavégzéshez
VBA feladatlapok Cheatsheet
VBA feladatlapok CheatsheetLeírás | Példa a kódra |
---|---|
Hivatkozó és aktiváló lapok | |
Lap neve | Táblázatok ("Bemenet"). Aktiválás |
VBA kód neve | 1. lap. Aktiválás |
Index pozíció | Táblázatok (1). Aktiválás |
Válassza a Lap lehetőséget | |
Válassza a Lap lehetőséget | Táblázatok ("Bemenet"). Válassza ki |
Változó beállítása | Dim ws munkalapként Állítsa be ws = ActiveSheet |
Név / Átnevezés | ActiveSheet.Name = "Újnév" |
Következő lap | ActiveSheet.Next.Activate |
Tekintse át az összes lapot | Dim ws munkalapként A munkalapok minden w -jére Msgbox ws.name Következő ws |
Tekintse át a kiválasztott lapokat | Dim ws munkalapként Minden ws -hez az ActiveWindow.SelectedSheets -ben MsgBox ws.Name Következő ws |
Szerezze be az ActiveSheet -et | MsgBox ActiveSheet.Name |
Lap hozzáadása | Lapok. Hozzáadás |
Adja hozzá a lapot és a nevet | Sheets.Add.Name = "NewSheet" |
Adjon hozzá lapot névvel a cellából | Sheets.Add.Name = tartomány ("a3") |
Lap hozzáadása a másik után | Sheets.Add After: = Sheets ("Input") |
Adja hozzá a lapot és a nevet | Sheets.Add (After: = Sheets ("Input")). Name = "NewSheet" |
Adja hozzá a lapot és a nevet | Sheets.Add (Before: = Sheets ("Input")). Name = "NewSheet" |
Adja hozzá a lapot a munkafüzet végéhez | Sheets.Add After: = Sheets (Sheets.Count) |
Adja hozzá a lapot a munkafüzet elejéhez | Sheets.Add (Before: = Sheets (1)). Name = "FirstSheet" |
Adja hozzá a lapot a változóhoz | Dim ws munkalapként Állítsa be a ws = Sheets.Add |
Munkalapok másolása | |
A munkalap áthelyezése a munkafüzet végére | Táblázatok ("Sheet1"). Lépés után: = Sheets (Sheets.Count) |
Új munkafüzethez | Táblázatok ("Sheet1"). Másolat |
Kiválasztott lapok az új munkafüzethez | ActiveWindow.SelectedSheets.Copy |
Újabb lap előtt | Táblázatok ("Sheet1"). Másolás előtt: = Sheets ("Sheet2") |
Első lap előtt | Táblázatok ("Sheet1"). Másolás előtt: = Sheets (1) |
Utolsó lap után | Táblázatok ("Sheet1"). Másolás után: = Sheets (Sheets.Count) |
Másolás és név | Táblázatok ("Sheet1"). Másolás után: = Sheets (Sheets.Count) ActiveSheet.Name = "LastSheet" |
Másolás és név a cellaértékből | Táblázatok ("Sheet1"). Másolás után: = Sheets (Sheets.Count) ActiveSheet.Name = Tartomány ("A1"). Érték |
Egy másik munkafüzethez | Táblázatok ("Lap1"). Másolás előtt: = Munkafüzetek ("Példa.xlsm"). Táblázatok (1) |
Táblázatok elrejtése / megjelenítése | |
Lap elrejtése | Táblázatok ("Sheet1"). Látható = Hamis vagy Táblázatok ("Sheet1"). Látható = xlSheetHidden |
Táblázat megjelenítése | Táblázatok ("Sheet1"). Visible = True vagy Táblázatok ("Sheet1"). Visible = xlSheetVisible |
Nagyon elrejtett lap | Táblázatok („Sheet1”). Visible = xlSheetVeryHidden |
Lapok törlése vagy törlése | |
Lap törlése | Táblázatok ("Sheet1"). Törlés |
Lap törlése (hiba kezelés) | Hiba esetén Folytassa a következőt Táblázatok ("Sheet1"). Törlés GoTo 0 hiba esetén |
Munkalap törlése (nincs kérés) | Application.DisplayAlerts = Hamis Táblázatok ("Sheet1"). Törlés Application.DisplayAlerts = Igaz |
Tiszta lap | Táblázatok ("Sheet1"). Cellák. Tiszta |
Csak a munkalap tartalma | Táblázatok ("Sheet1"). Cells.ClearContents |
Clear Sheet UsedRange | Táblázatok ("Sheet1"). UsedRange.Clear |
Védje vagy távolítsa el a lapokat | |
Védelem feloldása (nincs jelszó) | Táblázatok ("Sheet1"). Védelem megszüntetése |
Védelem feloldása (jelszó) | Táblázatok ("Sheet1"). A "Jelszó" védelmének feloldása |
Védelem (nincs jelszó) | Táblázatok ("Sheet1"). Véd |
Védelem (jelszó) | Táblázatok ("Sheet1"). A "Jelszó" védelme |
Védje, de engedélyezze a VBA -hozzáférést | Táblázatok ("Sheet1"). UserInterfaceOnly védelme: = Igaz |
Minden lap védelmének feloldása | Dim ws munkalapként Minden egyes munkalaphoz ws. A "jelszó" védelmének feloldása Következő ws |