VBA Sheets - A végső útmutató

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 Cheatsheet
LeírásPélda a kódra
Hivatkozó és aktiváló lapok
Lap neveTáblázatok ("Bemenet"). Aktiválás
VBA kód neve1. 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égetTáblázatok ("Bemenet"). Válassza ki
Változó beállításaDim ws munkalapként
Állítsa be ws = ActiveSheet
Név / ÁtnevezésActiveSheet.Name = "Újnév"
Következő lapActiveSheet.Next.Activate
Tekintse át az összes lapotDim ws munkalapként
A munkalapok minden w -jére
Msgbox ws.name
Következő ws
Tekintse át a kiválasztott lapokatDim ws munkalapként
Minden ws -hez az ActiveWindow.SelectedSheets -ben
MsgBox ws.Name
Következő ws
Szerezze be az ActiveSheet -etMsgBox ActiveSheet.Name
Lap hozzáadásaLapok. Hozzáadás
Adja hozzá a lapot és a nevetSheets.Add.Name = "NewSheet"
Adjon hozzá lapot névvel a cellábólSheets.Add.Name = tartomány ("a3")
Lap hozzáadása a másik utánSheets.Add After: = Sheets ("Input")
Adja hozzá a lapot és a nevetSheets.Add (After: = Sheets ("Input")). Name = "NewSheet"
Adja hozzá a lapot és a nevetSheets.Add (Before: = Sheets ("Input")). Name = "NewSheet"
Adja hozzá a lapot a munkafüzet végéhezSheets.Add After: = Sheets (Sheets.Count)
Adja hozzá a lapot a munkafüzet elejéhezSheets.Add (Before: = Sheets (1)). Name = "FirstSheet"
Adja hozzá a lapot a változóhozDim ws munkalapként
Állítsa be a ws = Sheets.Add
Munkalapok másolása
A munkalap áthelyezése a munkafüzet végéreTáblázatok ("Sheet1"). Lépés után: = Sheets (Sheets.Count)
Új munkafüzethezTáblázatok ("Sheet1"). Másolat
Kiválasztott lapok az új munkafüzethezActiveWindow.SelectedSheets.Copy
Újabb lap előttTáblázatok ("Sheet1"). Másolás előtt: = Sheets ("Sheet2")
Első lap előttTáblázatok ("Sheet1"). Másolás előtt: = Sheets (1)
Utolsó lap utánTáblázatok ("Sheet1"). Másolás után: = Sheets (Sheets.Count)
Másolás és névTáblázatok ("Sheet1"). Másolás után: = Sheets (Sheets.Count)
ActiveSheet.Name = "LastSheet"
Másolás és név a cellaértékbőlTáblázatok ("Sheet1"). Másolás után: = Sheets (Sheets.Count)
ActiveSheet.Name = Tartomány ("A1"). Érték
Egy másik munkafüzethezTá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éseTáblázatok ("Sheet1"). Látható = Hamis
vagy
Táblázatok ("Sheet1"). Látható = xlSheetHidden
Táblázat megjelenítéseTáblázatok ("Sheet1"). Visible = True
vagy
Táblázatok ("Sheet1"). Visible = xlSheetVisible
Nagyon elrejtett lapTáblázatok („Sheet1”). Visible = xlSheetVeryHidden
Lapok törlése vagy törlése
Lap törléseTá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 lapTáblázatok ("Sheet1"). Cellák. Tiszta
Csak a munkalap tartalmaTáblázatok ("Sheet1"). Cells.ClearContents
Clear Sheet UsedRangeTá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éstTáblázatok ("Sheet1"). UserInterfaceOnly védelme: = Igaz
Minden lap védelmének feloldásaDim ws munkalapként
Minden egyes munkalaphoz
ws. A "jelszó" védelmének feloldása
Következő ws

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

wave wave wave wave wave