A munkalapok rendezése Excelben VBA használatával (betűrendben)

Ha sok munkalappal dolgozik az Excelben, akkor tudhatja, hogy a kezelése problémává válhat.

Ha több mint pár munkalapja van, ezeket manuálisan kell elrendeznie.

Milyen egyszerű lenne, ha lenne egy módja a Excel -ben lévő munkalapok gyors rendezésének.

Bár erre nincs beépített szolgáltatás, ezt meg lehet tenni (könnyen) a VBA segítségével.

Ebben az oktatóanyagban megadom a kódot és a pontos lépéseket, amelyeket követnie kell az Excel munkalapok rendezéséhez.

A kód csípésével növekvő vagy csökkenő sorrendbe rendezheti a munkalapokat.

VBA kód a munkalapok rendezéséhez Excelben

Az alábbiakban az a kód található, amely a munkalapokat ábécé sorrendbe rendezi, amint futtatja.

Sub SortWorksheetsTabs () Application.ScreenUpdating = False Dim ShCount as Integer, i As Integer, j As Integer ShCount = Sheets.Count For i = 1 To ShCount - 1 For j = i + 1 to ShCount If UCase (Sheets (j). Név) <UCase (Táblázatok (i). Név) Ezután Táblázatok (j). Előtte mozog: = Táblázatok (i) Vége, ha Következő j Következő i Alkalmazás. ScreenUpdating = Igaz végrész

A fenti egy egyszerű kód, amely a For Next ciklusokhoz elemzi az egyes munkalapokat az összes munkalaphoz képest.

Összehasonlítja a munkalap nevét az összes munkalappal, és a neve alapján ábécé sorrendben mozgatja.

Ezután továbblép a következő munkalapra, majd összehasonlítja az összes munkalappal.

Ez a folyamat megismétlődik az összes munkalapon, és a végeredmény egy munkalap betűrendbe rendezett sorrendje.

Néhány fontos tudnivaló erről a kódról:

  1. Az UCase funkcióval biztosítható, hogy a kis- és nagybetűket ne kezeljék eltérően.
  2. Az Application.ScreenUpdating értéke hamis értékre van állítva a kód elején, és True értékre változik a kód végén. Ez biztosítja, hogy amíg a kód fut, nem látja, hogy megtörténik a képernyőn. Ez segít a kód végrehajtásának felgyorsításában is.

Ha csökkenő sorrendben szeretné rendezni a munkalapokat, akkor csak a (nagyobb) jelet kell megváltoztatnia.

Az alábbi kód csökkenő sorrendbe rendezné a munkalapokat:

'Ez a kód betűrendbe rendezi a munkalapokat. Ha UCase (Táblázatok (j) .Name)> UCase (Táblázatok (i) .Name) Ezután Táblázatok (j). Mozgás előtt: = Táblázatok (i) Vége Ha Következő j Következő i Alkalmazás.ScreenUpdating = Igaz végrész

Azt is megadhatja a felhasználónak, hogy válassza ki, hogy növekvő/csökkenő sorrendben kívánja -e rendezni.

Az alábbi kód üzenetmezőt jelenít meg, és a felhasználó kiválaszthatja a rendezés sorrendjét.

Sub SortWorksheetsTabs () Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer Dim SortOrder As VbMsgBoxResult SortOrder = MsgBox ("Válassza az Igen értéket a növekvő sorrendhez és a No értéket a csökkenő sorrendhez", vbYesNoCCancel) i = 1 a ShCount -hoz - 1 Ha j = i + 1 a ShCount -hoz, ha SortOrder = vbIgen, akkor ha UCase (Sheets (j) .Name) UCase (Sheets (i) .Name) Aztán Sheets (j). Lépés előtt: = Sheets (i) Vége Ha Vége Ha Következő j Következő i Alkalmazás. ScreenUpdating = Igaz Vége al

A fenti kód végrehajtásakor egy üzenet jelenik meg az alábbiak szerint. A kiválasztás alapján rendez (Igen, növekvő és Nem, csökkenő).

Ha a Mégse gombra kattint, a kód leáll, és nem történik semmi.

jegyzet: A rendezés nem vonható vissza. Ha meg szeretné tartani az eredeti sorrendet is, készítsen másolatot a munkafüzetről.

Egy óvatos szó: A fenti kód a legtöbb esetben működik. Az egyik terület, ahol rossz eredményt ad, ha olyan lapnevekkel rendelkezik, mint Q12021-2022, Q22021-2022, Q12021-2022, Q22021-2022. Ideális esetben azt szeretné, ha ugyanazon évek összes lapja együtt lenne, de ez nem történik meg, mivel a Q12021-2022 a Q22021-2022 előtt helyezkedik el.

Hová tegye a VBA kódot

Az Excel rendelkezik VBA háttérprogrammal, amelyet VBA -szerkesztőnek hívnak.

Be kell másolnia és beillesztenie a VBA kódot a VB Editor modul ablakába.

Ehhez tegye a következő lépéseket:

  1. Kattintson a „Fejlesztő” fülre. (Nem látja a fejlesztő lapot? Kattintson ide, hogy megtudja, hogyan szerezheti meg).
  2. Kattintson a Visual Basic lehetőségre. Ez megnyitja a VB szerkesztőt a háttérben.
  3. A VB szerkesztő Project Explorer ablaktáblájában kattintson jobb gombbal a munkafüzet bármely olyan objektumára, amelybe be szeretné illeszteni a kódot. (Ha nem látja a Project Explorer programot, lépjen a „View” fülre, és kattintson a „Project Explorer” gombra.)
  4. Lépjen a Beszúrás elemre, és kattintson a Modul elemre. Ezzel beszúr egy modulobjektumot a munkafüzetébe.
  5. Másolja ki és illessze be a kódot a modul ablakába.

A VBA kód futtatása

Az Excelben többféleképpen futtathatja a VBA kódot.

A kódot közvetlenül a Visual Basic Editorból (más néven VB Editor) futtathatja.

Beszúrhat egy gombot vagy alakzatot a munkalapba, és hozzárendelheti a makrót. Ha rákattint a gombra, azonnal futtatja a makrót.

A makrót hozzáadhatja a gyorselérési eszköztárhoz (QAT) is. Most, amikor rendeznie kell a munkalap lapjait, egyszerűen kattintson a makrókód ikonra a QAT -ban.

A makró futtatásáról itt olvashat - A makró futtatása Excelben (vagy nézze meg az alábbi videót).
A következő Excel/VBA oktatóanyagok is tetszhetnek:

  • Az adatok rendezése Excelben a VBA használatával.
  • Az adatok automatikus rendezése ábécé sorrendben a képlet segítségével.
  • Többszintű adatrendezés az Excelben.
  • Bevezetés az Excel adatválogatási beállításaiba.
  • Excel VBA automatikus szűrő: Teljes útmutató példákkal
  • Hogyan csoportosítsuk a munkalapokat Excelben
  • Az adatok fordítása az Excelben

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

wave wave wave wave wave