Heim  >  Artikel  >  Software-Tutorial  >  Mein Excel enthält drei Datenspalten

Mein Excel enthält drei Datenspalten

王林
王林nach vorne
2024-01-23 09:06:07764Durchsuche

Mein Excel enthält drei Datenspalten

Ich habe ein Excel mit drei Datenspalten. Ich möchte die Sortierfunktion über VB implementieren

Sub Sort1()

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

Mit ActiveSheet.Sort

.SetRange Range("A1:C" & Range("A1").CurrentRegion.Rows.Count)

.Header = xlYes

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Bewerben

Ende mit

End Sub

VB-Array-Sortierproblem

Wenn Sie insgesamt 12 Zahlen von 0 bis 11 in Spalte A der Excel-Tabelle eingeben, entsprechend 12 Zufallszahlen in Spalte B eingeben und dann nach Spalte B sortieren, werden die Zahlen in Spalte A zufällig angeordnet

Hier wird die gleiche Idee verwendet, aber die zweidimensionale Tabelle wird durch ein zweidimensionales Array ersetzt. Der Code lautet wie folgt:

Dimmen Sie die Matrix (0 bis 11, 0 bis 1) als Single

Dim i als Ganzzahl, j als Ganzzahl

SngTemp als Single dimmen

Randomisieren

'Initialisieren Sie das Array so, dass die erste Zahl jeder „Zeile“ die Zeilennummer und die zweite Zahl eine Zahl zufälliger Größe ist

Für i = 0 bis 11

Matrix(i, 0) = i

Matrix(i, 1) = Rnd(100)

Weiter

Text1.Text = ""

'Da das Array klein ist, wird hier die Blasensortierung verwendet, um die N-größte Zahl herauszufiltern und in Text1 anzuzeigen

Für i = 0 bis 11

Für j = i + 1 bis 11

Wenn Matrix(j, 1) > Matrix(i, 1) Dann

sngTemp = Matrix(i, 1)

Matrix(i, 1) = Matrix(j, 1)

Matrix(j, 1) = sngTemp

sngTemp = Matrix(i, 0)

Matrix(i, 0) = Matrix(j, 0)

Matrix(j, 0) = sngTemp

Ende wenn

Weiter

Text1.Text = Text1.Text & vbCrLf & Matrix(i, 0)

Weiter

Problem bei der Sortierung der Excel-VBA-Makrosprache bei Bildern

Frage 1

Private Sub CommandButton1_Click()

Dim i, j As Long

Sheets("sheet2").Cells.ClearContents

Sheets("sheet1").Cells.Copy

Blätter("Blatt2").Auswählen

Sheets("sheet2").Range("A1").Select

ActiveSheet.Paste

i = 3

Do While Sheets("sheet2").Range("A" & i).Value ""

Für j = 2 bis i - 1

If Sheets("sheet2").Range("A" & i).Value > Sheets("sheet2").Range("A"& j).Value Then

Sonst

Sheets("sheet2").Rows(i & ":" & i).Cut

Sheets("sheet2").Rows(j & ":" & j).Insert Shift:=xlDown

Beenden für

Ende wenn

Nächstes j

i = i + 1

Schleife

End Sub

Frage 2

Private Sub CommandButton1_Click()

Dim i, j As Long

Sheets("sheet2").Cells.ClearContents

Sheets("sheet1").Cells.Copy

Blätter("Blatt2").Auswählen

Sheets("sheet2").Range("A1").Select

ActiveSheet.Paste

i = 3

Do While Sheets("sheet2").Range("A" & i).Value ""

Für j = 2 bis i - 1

If Sheets("sheet2").Range("C" & i).Value & Sheets("sheet2").Range("D" & i).Value > Sheets("sheet2").Range("C" & j).Value & Sheets("sheet2").Range("D" & j).Value Then

Sonst

Sheets("sheet2").Rows(i & ":" & i).Cut

Sheets("sheet2").Rows(j & ":" & j).Insert Shift:=xlDown

Beenden für

Ende wenn

Nächstes j

i = i + 1

Schleife

End Sub

Das obige ist der detaillierte Inhalt vonMein Excel enthält drei Datenspalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:docexcel.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen