Poredajte radne listove u radnoj knjizi pomoću VBA u programu Microsoft Excel

Anonim

U ovom smo članku dali pojedinosti o tome kako sortirati radne listove u radnoj knjizi uzlaznim ili silaznim redoslijedom, ovisno o nazivu radnog lista.

U priloženoj radnoj knjizi postoje dva modula:-

Modul 1 sadrži makronaredbu "SortWorksheets" koja je dodijeljena gumbu "Submit" na listu "Macro".

Ova makronaredba sortira sve radne listove osim prvog radnog lista koji je glavni list nazvan "Makro".

Kada korisnik klikne gumb "Pošalji", svi listovi nakon lista "Makro" bit će razvrstani uzlaznim ili silaznim redoslijedom prema izboru korisnika u kombiniranom okviru.

Modul 2 sadrži dva makronaredbe “AscendingSortOfWorksheets” i “DecendingSortOfWorksheets”. Prilikom pokretanja makronaredbe "AscendingSortOfWorksheets" sortirat će sve radne listove prisutne u radnoj knjizi uzlaznim redoslijedom. Prilikom pokretanja makronaredbe “DecendingSortOfWorksheets”, sortirat će sve radne listove prisutne u radnoj knjizi prema silaznom redoslijedu.

Logično objašnjenje

Algoritam sortiranja mjehurićima koristi se za sortiranje radnih listova u radnoj knjizi.

Algoritam sortiranja mjehurićima uspoređuje svaku stavku u nizu s drugom stavkom u nizu i mijenja ih ovisno o tome hoće li se sortirati uzlaznim ili silaznim redoslijedom. U svakom koraku će mjehurićima prikazati najmanju ili najveću vrijednost na vrhu niza. Algoritam se ponavlja dok se sve stavke ne sortiraju.

U ovom članku cilj nam je sortirati radne listove u radnoj knjizi prema njihovom imenu. Radna bilježnica koju koristimo sastoji se od različitih radnih listova s ​​imenima poput Financijske nadzorne ploče, Ljudskih resursa i Prodajne nadzorne ploče.

Da bismo postigli ovaj cilj, upotrijebili smo algoritam sortiranja po mjehurićima za sortiranje radnih listova.

Objašnjenje koda

Makro SortWorksheets

Ova će se makronaredba pokrenuti kada korisnik klikne gumb za slanje. Ovaj će makro sortirati sve radne listove u radnoj knjizi prema njihovim nazivima, osim prvog radnog lista u radnoj knjizi. Ovisno o vrijednosti koju je korisnik odabrao u kombiniranom okviru, radni će listovi sortirati uzlazno ili silazno.

Za dodavanje kombiniranog okvira slijedite korake u nastavku:-

  1. Idite na karticu Developer> Pritisnite Insert> Kliknite ikonu kombiniranog okvira pod kontrolom obrasca

  1. Desnom tipkom miša kliknite kombinirani okvir i kliknite kontrolu formata.

  1. Idite na kontrolnu karticu, Dodijelite stavku i povežite kombinirani okvir s ćelijom XFC1.

ComboBoxValue = Raspon ("XFC1"). Vrijednost

Kombinirani okvir na radnom listu "Makro" povezan je s ćelijom XFC1. Dakle, za dobivanje vrijednosti iz ćelije XFC1 koristi se varijabla ComboBoxValue.

Za i = 2 Za SCount - 1

Petlja FOR počinje s varijablom i, vrijednost počinje od 2 jer želimo isključiti prvi radni list radne knjige iz sortiranja.

Ako je ComboBoxValue = 1 Tada

Ako se uvjet IF koristi za provjeru hoćete li sortirati uzlazno ili silazno. AKO je vrijednost ComboBoxValue 1, zatim sortirajte uzlaznim redoslijedom, inače silaznim.

Radni listovi razvrstani uzlaznim redoslijedom

Radni listovi sortirani silaznim redoslijedom

RastućeSortOfWarksheets i DecendingSortOfWarksheets

Makronaredbe uzlaznog razvrstavanja radnih listova i decendingSortOf radnih listova možete pokrenuti pritiskom na kombinaciju tipki prečaca Alt + F8 ili idite na karticu Razvojni programer> kliknite Makro> odabir makronaredbe i kliknite Pokreni. Oni će sortirati sve radne listove prisutne u radnoj knjizi. Ti se makronaredbe mogu izvoditi i na drugim radnim knjigama.

Radni listovi razvrstani nakon pokretanja makronaredbe AscendingSortOfWorksheets

Radni listovi razvrstani uzlaznim redoslijedom Makronaredba DecendingSortOfWorksheets

Molimo slijedite dolje za kôd

 Sub AscendingSortOfWorksheets () 'Poredajte radne listove u radnoj knjizi uzlaznim redoslijedom Dim SCount, i, j As Integer' Za onemogućavanje ažuriranja zaslona Application.ScreenUpdating = False 'Dobivanje ukupnog broja br. obožavatelja u radnoj knjizi SCount = Worksheets.Count 'Provjera uvjeta je li broj radnih listova veći od 1, ako je count jedan, izađite iz procedure If SCount = 1 then Exit Sub' Using Bubble sort as sorting algorithm 'Looping through all worksheets For i = 1 To SCount - 1 'Usporedba naziva odabranog lista s drugim listovima za premještanje odabranog lista na odgovarajući položaj Za j = i + 1 Za SCount If Worksheets (j).  Radni listovi (i). Imenujte zatim Radne listove (j). Premjestite prije: = Radni listovi (i) Završi ako je sljedeći j Sljedeći i Završi pod 

Ako vam se dopao ovaj blog, podijelite ga sa svojim prijateljima na Facebooku. Također, možete nas pratiti na Twitteru i Facebooku.

Voljeli bismo vas čuti, javite nam kako možemo poboljšati svoj rad i učiniti ga boljim za vas. Pišite nam na web stranici e -pošte