Gegevens willekeurig sorteren in Excel VBA - Eenvoudige Excel-macro's

Inhoudsopgave

Hieronder zullen we kijken naar een programma in Excel VBA Dat sorteert willekeurig gegevens (in dit voorbeeld worden namen willekeurig gesorteerd).

Situatie:

1. Eerst declareren we vier variabelen. Een variabele van het type String noemen we TempString, een variabele van het type Integer noemen we TempInteger, een variabele van het type Integer noemen we i, en een variabele van het type Integer noemen we j.

Dim tempString als string, tempInteger als geheel getal, i als geheel getal, j als geheel getal

2. We schrijven 5 willekeurige getallen in kolom B (één voor elke naam). Hiervoor gebruiken we de werkbladfunctie RandBetween.

Voor i = 1 tot 5
Cellen(i, 2).Waarde = WerkbladFunctie.RandBetween(0, 1000)
volgende i

Resultaat tot nu toe:

We zullen de nummers naast elke naam gebruiken om de namen te sorteren. De naam met het laagste nummer eerst, de naam met het op een na laagste nummer, tweede, etc.

3. We starten een dubbele lus.

Voor i = 1 tot 5
Voor j = i + 1 tot 5

4. Voeg de volgende coderegel toe:

Als Cellen (j, 2). Waarde < Cellen (i, 2). Waarde Dan

Voorbeeld: voor i = 1 en j = 2 worden Wendy en Richard vergeleken. Omdat Richard een lager nummer heeft, ruilen we Wendy en Richard. Richard staat nu op de eerste plaats. Voor i = 1 en j = 3 worden Richard en Joost vergeleken. Joost heeft een hoger nummer dus er gebeurt niets. Op deze manier krijgt Excel VBA de naam met het laagste nummer op de eerste positie. Voor i = 2 krijgt Excel VBA de naam met het op een na laagste nummer op de tweede positie, enz.

5. Indien waar, wisselen we de namen om.

tempString = Cellen (i, 1). Waarde
Cellen(i, 1).Waarde = Cellen(j, 1).Waarde
Cellen (j, 1). Waarde = tempString

6. En we wisselen de nummers.

tempInteger = Cellen(i, 2).Waarde
Cellen(i, 2).Waarde = Cellen(j, 2).Waarde
Cellen (j, 2). Waarde = tempInteger

7. Vergeet niet het If-statement te sluiten.

Stop als

8. Vergeet niet de twee lussen te sluiten.

 volgende j
volgende i

9. Test het programma.

Resultaat:

Let op: je kunt een regel toevoegen die de getallen in kolom B verwijdert. Nog leuker is het om de getallen van elke naam in een array te plaatsen, zodat er geen getallen op je werkblad komen te staan. Voor illustratieve doeleinden hebben we er echter voor gekozen om de waarden op het blad te plaatsen.

U zal helpen de ontwikkeling van de site, het delen van de pagina met je vrienden

wave wave wave wave wave