Maison >Tutoriel logiciel >Logiciel de bureau >Mon Excel contient trois colonnes de données
Sous Tri1()
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:=Range("A2:A" & Range("A1").CurrentRegion.Rows.Count) _
, SortOn :=xlSortOnValues, Order :=xlAscending, DataOption :=xlSortNormal
ActiveSheet.Sort.SortFields.Add Key:=Range("B2:B" & Range("A1").CurrentRegion.Rows.Count) _
, SortOn :=xlSortOnValues, Order :=xlAscending, DataOption :=xlSortNormal
Avec ActiveSheet.Sort
.SetRange Range("A1:C" & Range("A1").CurrentRegion.Rows.Count)
.En-tête = xlOui
.MatchCase = Faux
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Postuler
Fin avec
Fin du sous-marin
Si vous entrez un total de 12 nombres de 0 à 11 dans la colonne A du tableau Excel, entrez 12 nombres aléatoires en conséquence dans la colonne B, puis triez par colonne B, les nombres de la colonne A seront disposés de manière aléatoire
.La même idée est utilisée ici, mais le tableau à deux dimensions est remplacé par un tableau à deux dimensions. Le code est le suivant :
Dim Matrix (0 à 11, 0 à 1) comme simple
Dim i comme entier, j comme entier
Dim sngTemp en tant que célibataire
Randomiser
'Initialisez le tableau de sorte que le premier numéro de chaque "ligne" soit le numéro de ligne et que le deuxième numéro soit un nombre de taille aléatoire
Pour i = 0 à 11
Matrice(i, 0) = i
Matrice(i, 1) = Rnd(100)
Suivant
Texte1.Texte = ""
Comme le tableau est petit, le tri à bulles est utilisé ici pour filtrer le Nième plus grand nombre et l'afficher dans Text1
Pour i = 0 à 11
Pour j = i + 1 à 11
Si Matrice(j, 1) > Matrice(i, 1) Alors
sngTemp = Matrice(i, 1)
Matrice(i, 1) = Matrice(j, 1)
Matrice(j, 1) = sngTemp
sngTemp = Matrice(i, 0)
Matrice(i, 0) = Matrice(j, 0)
Matrice(j, 0) = sngTemp
Fin si
Suivant
Text1.Text = Text1.Text & vbCrLf & Matrix(i, 0)
Suivant
Question 1
Sous-CommandButton1_Click() privé
Dim i, j As Long
Feuilles("feuille2").Cells.ClearContents
Feuilles("feuille1").Cells.Copie
Feuilles("feuille2").Sélectionner
Feuilles("feuille2").Range("A1").Sélectionnez
ActiveSheet.Paste
i = 3
Do While Sheets("sheet2").Range("A" & i).Value ""
Pour j = 2 Pour i - 1
Si Sheets("sheet2").Range("A" & i).Value > Sheets("sheet2").Range("A"& j).Value Then
Autre
Feuilles("feuille2").Rangées(i & ":" & i).Cut
Feuilles("feuille2").Rows(j & ":" & j).Insert Shift:=xlDown
Sortie pour
Fin si
Suivant j
i = i + 1
Boucle
Fin du sous-marin
Question 2
Sous-CommandButton1_Click() privé
Dim i, j As Long
Feuilles("feuille2").Cells.ClearContents
Feuilles("feuille1").Cells.Copie
Feuilles("feuille2").Sélectionner
Feuilles("feuille2").Range("A1").Sélectionnez
ActiveSheet.Paste
i = 3
Do While Sheets("sheet2").Range("A" & i).Value ""
Pour j = 2 Pour i - 1
Si Sheets("sheet2").Range("C" & i).Value & Sheets("sheet2").Range("D" & i).Value > Sheets("sheet2").Range("C" & j).Valeur & Feuilles("feuille2").Range("D" & j).Valeur Alors
Autre
Feuilles("feuille2").Rangées(i & ":" & i).Cut
Feuilles("feuille2").Rows(j & ":" & j).Insert Shift:=xlDown
Sortie pour
Fin si
Suivant j
i = i + 1
Boucle
Fin du sous-marin
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!