In dit artikel hebben we details gegeven over het sorteren van de werkbladen in de werkmap in oplopende of aflopende volgorde, afhankelijk van de naam van het werkblad.
In de bijgevoegde werkmap zijn er twee modules: -
Module 1 bevat de macro "Werkbladen sorteren" die is toegewezen aan de knop "Verzenden" op het blad "Macro".
Deze macro sorteert alle werkbladen behalve het eerste werkblad, het hoofdblad genaamd "Macro".
Wanneer de gebruiker op de knop "Verzenden" klikt, worden alle bladen na het blad "Macro" gesorteerd in oplopende of aflopende volgorde zoals gekozen door de gebruiker in de keuzelijst met invoervak.
Module2 bevat twee macro's "AscendingSortOfWorksheets" en "DecendingSortOfWorksheets". Bij het uitvoeren van de macro "AscendingSortOfWorksheets", worden alle werkbladen in de werkmap in oplopende volgorde gesorteerd. Bij het uitvoeren van de macro "DecendingSortOfWorksheets", worden alle werkbladen in de werkmap in aflopende volgorde gesorteerd.
Logische uitleg
Het algoritme voor het sorteren van bellen wordt gebruikt voor het sorteren van de werkbladen in de werkmap.
Het bubbelsorteeralgoritme vergelijkt elk item in de array met andere items in de array en verwisselt ze afhankelijk van of ze in oplopende of aflopende volgorde moeten worden gesorteerd. Bij elke stap zal de kleinste of grootste waarde naar de bovenkant van de array bubbelen. Algoritme wordt herhaald totdat alle items zijn gesorteerd.
In dit artikel is ons doel de werkbladen in de werkmap op naam te sorteren. Werkmap die we gebruiken, bestaat uit verschillende werkbladen met namen als Financieel Dashboard, Human Resources en Verkoopdashboard.
Om dit doel te bereiken, hebben we het Bubble-sorteeralgoritme gebruikt voor het sorteren van de werkbladen.
Code uitleg
SorteerWerkbladen Macro
Deze macro wordt uitgevoerd wanneer de gebruiker op de verzendknop klikt. Deze macro sorteert alle werkbladen in de werkmap op naam, behalve het eerste werkblad in de werkmap. Afhankelijk van de waarde die door de gebruiker in de keuzelijst met invoervak is geselecteerd, worden de werkbladen in oplopende of aflopende volgorde gesorteerd.
Volg onderstaande stappen voor het toevoegen van combobox: -
-
Ga naar het tabblad Ontwikkelaar > Klik op Invoegen > Klik op het combobox-pictogram onder formulierbesturing
-
Klik met de rechtermuisknop op de combobox en klik op formaatbesturing.
-
Ga naar het tabblad Control, Wijs het item toe en koppel de combobox aan cel XFC1.
ComboBoxValue = Bereik ("XFC1"). Waarde
De keuzelijst met invoervak op het werkblad "Macro" is gekoppeld aan cel XFC1. Dus om waarde uit cel XFC1 te halen, wordt de ComboBoxValue-variabele gebruikt.
Voor i = 2 tot SCtelling - 1
FOR-lus begint met variabele i, waarde beginnend bij 2, omdat we het eerste werkblad van de werkmap willen uitsluiten van sorteren.
Als ComboBoxValue = 1 Dan
ALS-voorwaarde wordt gebruikt om te controleren of in oplopende of aflopende volgorde moet worden gesorteerd. ALS de ComboBoxValue-waarde 1 is, sorteer dan in oplopende volgorde, anders aflopende volgorde.
Werkbladen in oplopende volgorde gesorteerd
Werkbladen in aflopende volgorde gesorteerd
AscendingSortOfWorksheets en DecendingSortOfWorksheets
AscendingSortOfWorksheets en DecendingSortOfWorksheets macro's kunnen worden uitgevoerd door op Alt + F8 sneltoets te drukken of Ga naar het tabblad Ontwikkelaar > Klik op Macro > selecteer de macro en klik op Uitvoeren. Ze sorteren alle werkbladen in de werkmap. Deze macro's kunnen ook op andere werkmappen worden uitgevoerd.
Werkbladen gesorteerd na het uitvoeren van de macro AscendingSortOfWorksheets
Werkbladen gesorteerd in oplopende volgorde DecendingSortOfWorksheets macro
Volg hieronder voor de code:
Sub AscendingSortOfWorksheets() 'Sorteer werkbladen in een werkmap in oplopende volgorde Dim SCCount, i, j As Integer 'Voor het uitschakelen van schermupdates Application.ScreenUpdating = False 'Totaalnr. van worsheets in werkmap SCount = Worksheets.Count 'Voorwaarde controleren of het aantal werkbladen groter is dan 1, Als het aantal één is, sluit dan de procedure af If SCount = 1 Dan Exit Sub 'Bubbelsortering gebruiken als sorteeralgoritme' Alle werkbladen doorlopen Voor i = 1 To SCount - 1 'Vergelijking van de geselecteerde bladnaam maken met andere bladen om het geselecteerde blad naar de juiste positie te verplaatsen Voor j = i + 1 To SCount If Worksheets(j).NameWorksheets(i).Name Then Worksheets(j).Move Before:=Worksheets(i) End If Next j Next i End Sub
Als je deze blog leuk vond, deel hem dan met je vrienden op Facebook. Ook kunt u ons volgen op Twitter en Facebook.
We horen graag van u, laat ons weten hoe we ons werk kunnen verbeteren en voor u kunnen verbeteren. Schrijf ons op de e-mailsite