Atsitiktinai surūšiuokite duomenis „Excel VBA“ - paprastos „Excel“ makrokomandos

Turinys

Žemiau apžvelgsime programą Excel VBA kad atsitiktinai surūšiuoja duomenis (šiame pavyzdyje atsitiktinai surūšiuojami pavadinimai).

Situacija:

1. Pirmiausia deklaruojame keturis kintamuosius. Vieną „String“ tipo kintamąjį vadiname „TempString“, vieną „Integer“ tipo kintamąjį vadiname „TempInteger“, vieną „Integer“ tipo kintamąjį vadiname „i“ ir vieną „Integer“ tipo kintamąjį vadiname „j“.

Dim tempString As String, tempInteger As Integer, i As Integer, j As Integer

2. Į B stulpelį įrašome 5 atsitiktinius skaičius (po vieną kiekvienam vardui). Tam naudojame darbalapio funkciją „RandBetween“.

Jei i = nuo 1 iki 5
Ląstelės (i, 2). Value = WorksheetFunction.RandBetween (0, 1000)
Kitas I.

Rezultatas iki šiol:

Vardams rūšiuoti naudosime šalia kiekvieno vardo esančius skaičius. Vardas su mažiausiu skaičiumi pirmiausia, vardas su antru mažiausiu skaičiumi, antras ir kt.

3. Mes pradedame dvigubą kilpą.

Jei i = nuo 1 iki 5
Jei j = i + 1 iki 5

4. Pridėkite šią kodo eilutę:

Jei langeliai (j, 2) .Vertybė <Ląstelės (i, 2) .Verta Tada

Pavyzdys: jei i = 1 ir j = 2, Wendy ir Richardas yra lyginami. Kadangi Ričardas turi mažesnį skaičių, mes apsikeičiame Wendy ir Richardu. Ričardas dabar yra pirmoje pozicijoje. Jei i = 1 ir j = 3, Richardas ir Joostas lyginami. „Joost“ skaičius yra didesnis, todėl nieko neįvyksta. Tokiu būdu „Excel VBA“ pirmoje pozicijoje gauna pavadinimą su mažiausiu skaičiumi. Jei i = 2, „Excel VBA“ gauna pavadinimą su antru mažiausiu skaičiumi antroje vietoje ir pan.

5. Jei tai tiesa, keičiame vardus.

tempString = Ląstelės (i, 1). Vertė
Ląstelės (i, 1). Vertė = ląstelės (j, 1). Vertė
Ląstelės (j, 1). Vertė = tempString

6. Ir mes apsikeičiame skaičiais.

tempInteger = Ląstelės (i, 2). Vertė
Ląstelės (i, 2). Vertė = ląstelės (j, 2). Vertė
Ląstelės (j, 2). Vertė = tempInteger

7. Nepamirškite uždaryti teiginio „If“.

Pabaiga Jei

8. Nepamirškite uždaryti dviejų kilpų.

 Kitas j
Kitas I.

9. Išbandykite programą.

Rezultatas:

Pastaba: galite pridėti eilutę, kuri ištrina B stulpelyje esančius skaičius. Dar gražiau kiekvieno vardo numerius įdėti į masyvą, todėl jūsų darbalapyje nėra skaičių. Tačiau iliustraciniais tikslais pasirinkome vertes patalpinti lape.

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

wave wave wave wave wave