Maison  >  Article  >  Tutoriel logiciel  >  Mon Excel contient trois colonnes de données

Mon Excel contient trois colonnes de données

王林
王林avant
2024-01-23 09:06:07726parcourir

Mon Excel contient trois colonnes de données

J'ai un Excel avec trois colonnes de données. Je souhaite implémenter la fonction de tri via VB

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

Problème de tri des tableaux VB

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

Problème de tri du langage macro EXCEL VBA avec les images

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer