Rumah >Tutorial perisian >Perisian Pejabat >My Excel mengandungi tiga lajur data

My Excel mengandungi tiga lajur data

王林
王林ke hadapan
2024-01-23 09:06:07794semak imbas

My Excel mengandungi tiga lajur data

Saya mempunyai Excel dengan tiga lajur data. Saya mahu melaksanakan fungsi pengisihan melalui VB

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

Masalah pengisihan tatasusunan VB

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

Soalan 1

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 - 1

Jika 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 - 1

Jika 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!

Kenyataan:
Artikel ini dikembalikan pada:docexcel.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam