Sub Isih1()
ActiveSheet.Sort.SortFields.Clear
ActiveSheet.Sort.SortFields.Add Key:=Julat("A2:A" & Julat("A1").CurrentRegion.Rows.Count) _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveSheet.Sort.SortFields.Add Key:=Julat("B2:B" & Julat("A1").CurrentRegion.Rows.Count) _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
Dengan ActiveSheet.Sort
.Julat Set("A1:C" & Julat("A1").Wilayah Semasa.Rows.Count)
.Pengepala = xlYa
.MatchCase = Palsu
.Orientasi = xlTopToBottom
.SortMethod = xlPinYin
.Mohon
Tamat Dengan
Tamat Sub
Jika anda memasukkan sejumlah 12 nombor dari 0 hingga 11 dalam lajur A jadual excel, masukkan 12 nombor rawak yang sepadan dalam lajur B, dan kemudian susun mengikut lajur B, nombor dalam lajur A akan disusun secara rawak
Idea yang sama digunakan di sini, tetapi jadual dua dimensi digantikan dengan tatasusunan dua dimensi Kodnya adalah seperti berikut:Matriks Malap (0 Hingga 11, 0 Hingga 1) Sebagai Bujang
Malapkan i Sebagai Integer, j Sebagai Integer
Malapkan sngTemp Sebagai Bujang
Rawakkan
'Mulakan tatasusunan supaya nombor pertama setiap "baris" ialah nombor baris dan nombor kedua ialah nombor bersaiz rawak
Untuk i = 0 Hingga 11
Matriks(i, 0) = i
Matriks(i, 1) = Rnd(100)
Seterusnya
Teks1.Teks = ""
'Memandangkan tatasusunan kecil, pengisihan gelembung digunakan di sini untuk menapis nombor ke-N terbesar dan memaparkannya dalam Teks1
Untuk i = 0 Hingga 11
Untuk j = i + 1 Hingga 11
Jika Matriks(j, 1) > Matriks(i, 1) Maka
sngTemp = Matriks(i, 1)
Matriks(i, 1) = Matriks(j, 1)
Matriks(j, 1) = sngTemp
sngTemp = Matriks(i, 0)
Matriks(i, 0) = Matriks(j, 0)
Matriks(j, 0) = sngTemp
Tamat Jika
Seterusnya
Teks1.Teks = Teks1.Teks & vbCrLf & Matriks(i, 0)
Seterusnya
EXCEL VBA masalah pengisihan bahasa makro dengan gambar
Button Sub Perintah Peribadi1_Klik()
Malap i, j Selagi
Helaian("lembaran2").Sel.KosongkanKandungan
Helaian("helaian1").Sel.Salin
Helaian("lembar2").Pilih
Helaian("lembar2").Julat("A1").Pilih
ActiveSheet.Tampal
i = 3
Lakukan Sementara Helaian("lembar2").Julat("A" & i).Nilai
""
Untuk j = 2 Kepada i - 1Jika Helaian("helaian2").Julat("A" & i).Nilai > Helaian("helaian2").Julat("A" & j).Nilai Kemudian
Lain
Helaian("lembar2").Baris(i & ":" & i).Potong
Helaian("lembar2").Baris(j & ":" & j).Sisipkan Shift:=xlDown
Keluar Untuk
Tamat Jika
Seterusnya j
i = i + 1
Gelung
Tamat Sub
Soalan 2
Button Sub Perintah Peribadi1_Klik()
Malap i, j Selagi
Helaian("lembaran2").Sel.KosongkanKandungan
Helaian("helaian1").Sel.Salin
Helaian("lembar2").Pilih
Helaian("lembar2").Julat("A1").Pilih
ActiveSheet.Tampal
i = 3
Lakukan Sementara Helaian("lembar2").Julat("A" & i).Nilai
""
Untuk j = 2 Kepada i - 1Jika Helaian("helaian2").Julat("C" & i).Nilai & Helaian("lembaran2").Julat("D" & i).Nilai > Helaian("helaian2").Julat("C" & j).Nilai & Helaian("helaian2").Julat("D" & j).Nilai Kemudian
Lain
Helaian("lembar2").Baris(i & ":" & i).Potong
Helaian("lembar2").Baris(j & ":" & j).Sisipkan Shift:=xlDown
Keluar Untuk
Tamat Jika
Seterusnya j
i = i + 1
Gelung
Tamat Sub
Atas ialah kandungan terperinci My Excel mengandungi tiga lajur data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!