Kaip rūšiuoti darbalapius „Excel“ naudojant VBA (abėcėlės tvarka)

Jei dirbate su daugybe „Excel“ darbalapių, žinote, kad jo valdymas gali tapti problema.

Turėdami daugiau nei porą darbalapių, turite juos rankiniu būdu sutvarkyti.

Kaip būtų lengva, jei būtų būdas greitai surūšiuoti darbalapius „Excel“.

Nors nėra integruotos funkcijos, kaip tai padaryti, tai galima padaryti (lengvai) naudojant VBA.

Šioje pamokoje aš jums pateiksiu kodą ir tikslius veiksmus, kuriuos turite atlikti, norėdami rūšiuoti darbalapius „Excel“.

Galite pataisyti kodą, kad surūšiuotumėte darbalapius didėjančia arba mažėjančia tvarka.

VBA kodas, skirtas „Excel“ darbalapiams rūšiuoti

Žemiau yra kodas, kuris surūšiuos darbalapius abėcėlės tvarka, kai tik juos paleisite.

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). Pavadinimas] <UCase (Skaičiuoklės (i). Pavadinimas) Tada Skaičiuoklės (j). Perkelti prieš: = Lakštai (i) Pabaiga, jei kita j Kita i programa. ScreenUpdating = Tikroji pabaiga

Aukščiau pateiktas paprastas kodas, naudojamas „For Next“ kilpoms analizuoti kiekvieną darbalapį pagal visus darbalapius.

Jis palygina darbalapio pavadinimą su visais darbalapiais ir perkelia jį pagal pavadinimą abėcėlės tvarka.

Tada jis pereina prie kito darbalapio ir patikrina jį pagal visus darbalapius.

Šis procesas kartojamas visiems darbalapiams, o galutinis rezultatas yra darbalapio tvarka, surūšiuota abėcėlės tvarka.

Keletas svarbių dalykų, kuriuos reikia žinoti apie šį kodą:

  1. UCase funkcija naudojama siekiant užtikrinti, kad mažosios ir didžiosios raidės nebūtų traktuojamos skirtingai.
  2. „Application.ScreenUpdating“ reikšmė kodo pradžioje nustatyta kaip „False“, o kodo pabaigoje - „True“. Tai užtikrina, kad kol kodas veikia, nematysite, kaip tai vyksta ekrane. Tai taip pat padeda pagreitinti kodo vykdymą.

Jei norite rūšiuoti darbalapius mažėjančia tvarka, jums tereikia pakeisti (didesnį nei) ženklą.

Žemiau pateiktas kodas surūšiuotų darbalapius mažėjančia tvarka:

„Šis kodas surūšiuos darbalapius abėcėlės tvarka Sub SortWorksheetsTabs () Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer ShCount = Sheets. Jei UCase (Skaičiuoklės (j). Pavadinimas)> UCase (Skaičiuoklės (i). Pavadinimas) Tada Skaičiuoklės (j). Perkelti prieš: = Lakštai (i) Pabaiga, jei kita j Kita i programa.ScreenUpdating = Tikroji pabaiga

Taip pat galite suteikti vartotojui galimybę pasirinkti, ar jis nori rūšiuoti didėjančia/mažėjančia tvarka.

Žemiau pateiktas kodas parodys pranešimų laukelį ir vartotojas gali pasirinkti rūšiavimo tvarką.

Sub SortWorksheetsTabs () Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer Dim SortOrder As VbMsgBoxResult SortOrder = MsgBox ("Pasirinkite Taip didėjančiai tvarkai ir Ne mažėjančiai tvarkai", vbYesNoCCancel) i = 1 į „ShCount“ - 1 J = i + 1 „ShCount“, jei „SortOrder“ = vb Taip, tada, jei „UCase“ (skaičiuoklės (j). pavadinimas) „UCase“ (lakštai (i). pavadinimas), tada skaičiuoklės (j). (i) Pabaiga, jei pabaiga, jei kita j Kitas i Application.ScreenUpdating = Tikrasis pabaiga

Vykdant aukščiau pateiktą kodą rodomas pranešimas, kaip parodyta žemiau. Jis rūšiuojamas pagal pasirinkimą (Taip didėjančiam ir Ne mažėjančiam).

Jei spustelėsite Atšaukti, kodas sustos ir nieko neįvyks.

Pastaba: Rūšiavimo negalima anuliuoti. Jei norite išsaugoti ir pradinį užsakymą, padarykite darbaknygės kopiją.

Atsargumo žodis: Aukščiau pateiktas kodas veikia daugeliu atvejų. Viena sritis, kurioje jis duos neteisingą rezultatą, yra tada, kai turite skirtukų pavadinimus, tokius kaip Q12021-2022, Q22021-2022, Q12021-2022, Q22021-2022. Idealiu atveju norėtumėte, kad visi tų pačių metų skirtukai būtų kartu, tačiau tai nebus padaryta, nes Q12021-2022 bus pateiktas anksčiau nei Q22021-2022.

Kur įdėti VBA kodą

„Excel“ turi VBA vidinę programą, vadinamą VBA redaktoriumi.

Turite nukopijuoti ir įklijuoti VBA kodą į VB redaktoriaus modulio kodo langą.

Štai žingsniai, kaip tai padaryti:

  1. Spustelėkite skirtuką „Kūrėjas“. (Nematote kūrėjo skirtuko? Spustelėkite čia, kad sužinotumėte, kaip jį gauti).
  2. Spustelėkite „Visual Basic“ parinktį. Tai atidarys VB redaktorių užpakalinėje sistemoje.
  3. VB redaktoriaus „Project Explorer“ srityje dešiniuoju pelės mygtuku spustelėkite bet kurį darbaknygės objektą, į kurį norite įterpti kodą. (Jei nematote „Project Explorer“, eikite į skirtuką „View“ ir spustelėkite „Project Explorer“.)
  4. Eikite į „Įterpti“ ir spustelėkite „Modulis“. Tai įterps jūsų darbo knygos modulio objektą.
  5. Nukopijuokite ir įklijuokite kodą modulio lange.

Kaip paleisti VBA kodą

„Excel“ yra įvairių būdų, kaip paleisti VBA kodą.

Kodą galite paleisti tiesiai iš „Visual Basic“ redaktoriaus (dar vadinamo VB redaktoriumi).

Galite įterpti mygtuką arba formą į darbalapį ir priskirti jam makrokomandą. Spustelėjus mygtuką, makrokomanda bus paleista akimirksniu.

Makrokomandą taip pat galite pridėti prie sparčiosios prieigos įrankių juostos (QAT). Dabar, kai reikia rūšiuoti darbalapio skirtukus, galite tiesiog spustelėti makrokomandos piktogramą QAT.

Visą informaciją apie makrokomandos paleidimą galite perskaityti čia - Kaip paleisti makrokomandą „Excel“ (arba žiūrėkite žemiau esantį vaizdo įrašą).
Jums taip pat gali patikti šios „Excel“/VBA pamokos:

  • Kaip rūšiuoti duomenis „Excel“ naudojant VBA.
  • Automatiškai surūšiuokite duomenis abėcėlės tvarka naudodami formulę.
  • Kaip atlikti kelių lygių duomenų rūšiavimą „Excel“.
  • Įvadas į „Excel“ duomenų rūšiavimo parinktis.
  • „Excel VBA“ automatinis filtras: išsamus vadovas su pavyzdžiais
  • Kaip grupuoti darbalapius „Excel“
  • Kaip apversti duomenis „Excel“

Padėsite svetainės plėtrą, dalintis puslapį su draugais

wave wave wave wave wave