Cara Mengurutkan Rentang Menggunakan VBA di Excel (6 Contoh)

  • Bagikan Ini
Hugh West

Mengetahui cara mengurutkan rentang menggunakan VBA di Excel adalah penghematan waktu dan tenaga dalam perhitungan harian kita. Meskipun Excel menyediakan fasilitas pengurutan secara default. Dengan menggunakan tombol Range.Sort metode kita mendapatkan akses ke beberapa parameter untuk mengurutkan dataset dengan lebih banyak pilihan dari biasanya.

Unduh Buku Kerja Praktik

Unduh buku kerja latihan ini untuk latihan saat Anda membaca artikel ini.

Urutkan Rentang di Excel.xlsm

Pengantar Pernyataan Range.Sort di Excel VBA

Tujuan: Untuk mengurutkan rentang data sel.

Sintaksis:

ekspresi Sortir ( Key1 , Pesanan1 , Key2 , Jenis , Pesanan2 , Key3 , Order3 , Header , OrderCustom , MatchCase , Orientasi , SortMethod , DataOption1 , DataOption2 , DataOption3 )

Di sini, yang ekspresi merupakan Rentang objek yaitu, sel, baris, kolom, atau pilihan sel.

Argumen:

Kita perlu menyediakan tiga parameter utama untuk Range.Sort Metode. Mereka-

Kunci - Rentang sel dari satu atau beberapa kolom yang perlu kita urutkan.

Pesanan - Tentukan urutan pengurutan, baik naik atau turun.

Header - Nyatakan apakah kolom yang akan diurutkan memiliki header atau tidak.

6 Contoh untuk Mengurutkan Rentang di Excel VBA

Dalam artikel ini, sebagai dataset, kita akan menggunakan daftar nama orang dengan tanggal lahir dan usia mereka. Kita akan menerapkan metode yang berbeda untuk mengurutkan dataset. Mari kita baca artikel dan berlatih untuk menguasai metode-metode ini.

1. Urutkan Rentang Kolom Tunggal Menggunakan Excel VBA

Dalam contoh ini, kita akan sortir orang dari tertua untuk termuda Mari kita ikuti langkah-langkah untuk menggunakan Rentang . Sortir metode yang akan sortir yang Kolom usia di urutan menurun .

Langkah-langkah:

  • Pergi ke Tab Pengembang di Pita Excel untuk klik pada Visual Basic

  • Kemudian pilih Opsi modul dari Sisipkan tab untuk membuka modul baru .

Sekarang, kita akan menaruh kode kita ke sortir yang Usia rentang kolom.

1.1 Kolom dengan Tajuk

Letakkan kode berikut ini dalam editor kode visual.

 Sub SortRange() Range("D4:D11").Sort Key1:=Range("D4"), _ Order1:=xlDescending, _ Header:=xlYes End Sub 

Tekan F5 atau klik tombol Lari tombol untuk mengeksekusi kode.

Penjelasan:

Dalam kode di atas, kita menempatkan-

Ekspresi (objek Range)=Range("D4:D11"); yang kolom usia dengan sundulan di sel D4 dan nilai di D5:D11.

Key = Range ("D4"); yang kunci untuk penyortiran.

Order= xlDescending; seperti yang kita inginkan sortir nilai dari terbesar untuk terendah kita mengatur urutan penyortiran sebagai turun.

Header = xlYa; Dalam screenshot berikut ini, kita bisa melihat bahwa dataset memiliki sundulan untuk masing-masing kolom.

1.2 Kolom tanpa Tajuk

Letakkan kode berikut ini dalam editor kode visual.

 Sub SortRange() Range("D4:D10").Sort Key1:=Range("D4"), _ Order1:=xlDescending, _ Header:=xlNo End Sub 

Tekan F5 atau klik tombol Lari tombol untuk mengeksekusi kode.

Penjelasan:

Dalam kode di atas, kita menempatkan-

Ekspresi (objek Range)=Range("D4:D10"); yang kolom usia tanpa sundulan memiliki nilai di D4:D10.

Key = Range ("D4"); yang kunci untuk penyortiran.

Order= xlDescending; seperti yang kita inginkan sortir nilai dari terbesar untuk terendah kita mengatur urutan penyortiran sebagai turun.

Header = xlNo; Dalam screenshot berikut ini, kita bisa melihat bahwa dataset tidak memiliki tajuk.

Konten Terkait: Cara Mengurutkan Kolom di Excel tanpa Mencampur Data (3 Cara)

2. Menggunakan Kode VBA untuk Mengurutkan Beberapa Rentang Kolom di Excel

Untuk menunjukkan penyortiran dalam beberapa kolom , kita perlu memodifikasi kami dataset sedikit. Kami disisipkan beberapa baru barisan Dalam dataset yang dimodifikasi, baris 7, 8, dan 9 memiliki sama nilai untuk tanggal lahir dan usia tetapi tiga nama yang berbeda . ini nama adalah tidak dalam setiap pesanan tertentu naik atau turun.

Dalam contoh ini, kita akan mengurutkan nama-nama dalam urutan menaik Mari kita jalankan kode berikut ini di editor visual basic:

 Sub SortRange() Range("B4:D12").Sort Key1:=Range("D4"), _ Order1:=xlDescending, _ Key2:=Range("B4"), _ Order2:=xlAscending, _ Header:=xlYes End Sub 

Penjelasan:

Dalam tangkapan layar di atas, kita bisa melihat bahwa usia di kolom D adalah diurutkan di turun pesanan. Kami menambahkan dua parameter lagi dalam kode kita sebelumnya.

Kunci2: =Range ("B4") , kunci untuk mengurutkan nama.

Order2: =xlAscending , yang Agar untuk nama korslet .

Sebagai hasilnya, kita melihat nama di baris 7, 8, dan 9 sekarang berdasarkan abjad diurutkan dalam naik pesanan.

Dalam tangkapan layar berikut ini, kita mengubah nilai dari Parameter Order2 untuk sortir yang nama di turun pesanan.

Baca selengkapnya: Cara Mengurutkan Beberapa Kolom di Excel (5 Pendekatan Cepat)

3. Klik Dua Kali pada Header untuk Mengurutkan Rentang Kolom di Excel VBA

Fitur penyortiran default Excel tidak memungkinkan untuk mengurutkan nilai dari kolom oleh mengklik dua kali yang tajuk kolom Tetapi dengan menggunakan kode VBA kita bisa mewujudkannya. Mari kita ilustrasikan fungsi ini dengan menerapkan kode berikut.

 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim KeyRange As Range Dim ColCount As Integer ColCount = Range("A1:C8").Columns.Count Cancel = False If Target.Row = 1 And Target.Column <= ColCount Then Cancel = True Set KeyRange = Range(Target.Address) Range("A1:C8").Sort Key1:=KeyRange, Header:=xlYes End If End Sub 

Dalam kode ini, kami menggunakan Peristiwa BeforeDoubleClick untuk menonaktifkan double double yang biasa - klik yaitu untuk memulai penyuntingan mode sel. Dengan event ini berjalan, jika kita ganda - klik pada salah satu tajuk kolom itu mengurutkan data kolom dalam urutan menaik .

Baca selengkapnya: VBA untuk Mengurutkan Kolom di Excel (4 Metode)

Bacaan serupa:

  • Cara Menambahkan Tombol Urutkan di Excel (7 Metode)
  • Urutkan Daftar Unik di Excel (10 Metode Berguna)
  • Cara Menggunakan Fungsi Pengurutan di Excel VBA (8 Contoh yang Sesuai)
  • Urutkan Duplikat di Excel (Kolom dan Baris)
  • Urutan Acak di Excel (Rumus + VBA)

4. Urutkan Rentang Kolom Berdasarkan Warna Latar Belakang Menggunakan Excel VBA

Kita bisa mengurutkan rentang sel dalam kolom berdasarkan pada mereka warna latar belakang Untuk melakukannya, kita perlu tambahkan a parameter bernama SortOn yang memiliki nilai xlSortOnCellColor Untuk mendemonstrasikan pemilahan, pertama-tama kita menetapkan berbagai warna latar belakang ke barisan dataset .

Kemudian di editor kode visual basic salinan kode berikut dan tekan F5 untuk menjalankannya.

 Sub SortRangeByBackgroundColor() ActiveWorkbook.Worksheets("background").Sort.Sort.SortFields.Add2 Key:=Range("B4"), _ SortOn:=xlSortOnCellColor, Order:=xlAscending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("background").Sort .SetRange Range("B4:D10") .Apply End With End Sub 

Dalam tangkapan layar berikut ini, kita bisa melihat dataset yang diurutkan berdasarkan warna latar belakangnya.

Penjelasan:

  • Dalam contoh ini, kita menamai lembar kerja " latar belakang ". Jadi, dalam kode, kita meletakkan " latar belakang " sebagai nama lembar kerja yang aktif.
  • Kami menetapkan B4 sebagai kunci dan B4:D10 sebagai rentang Kode akan mengurutkan data berdasarkan kunci.
  • Karena kita tidak menentukan parameter header , kode berjalan untuk default tidak ada header.
  • Kami menetapkan Agar parameter sebagai naik, sehingga mengurutkan data dari nilai yang lebih rendah ke nilai yang lebih tinggi .

Baca selengkapnya: Cara Mengurutkan berdasarkan Warna di Excel (4 Kriteria)

5. Terapkan Kode VBA untuk Mengurutkan Rentang Kolom Berdasarkan Warna Font

Dengan menerapkan kode VBA, kita bisa mengurutkan dataset kita berdasarkan warna font Pertama, kita perlu warna baris yang berbeda untuk mengilustrasikan contoh.

Terapkan kode di bawah ini untuk mengurutkan dataset berdasarkan warna font.

 Sub SortRangeByFontColor() ActiveWorkbook.Worksheets("fontcolor").Sort.Sort.SortFields.Add(Range("B4"), _ xlSortOnFontColor, xlAscending, xlSortNormal).SortOnValue.Color = RGB(0, 0, 0) With ActiveWorkbook.Worksheets("fontcolor").Sort .SetRange Range("B4:D11") .Header = xlYes .Orientation = xlTopToBottom .Apply End With End Sub 

Penjelasan:

  • Dalam contoh ini, kita menamai lembar kerja " warna huruf ". Jadi, dalam kode, kita meletakkan " warna huruf " sebagai nama lembar kerja yang aktif.
  • Kami menetapkan B4 sebagai kunci dan B4:D11 sebagai rentang Kode akan mengurutkan data berdasarkan kunci.
  • Dalam contoh ini, kita juga menetapkan parameter header sebagai xlYa .
  • Di sini, kita menetapkan Agar parameter sebagai naik, sehingga mengurutkan data dari nilai yang lebih rendah ke nilai yang lebih tinggi .
  • Nilai dari SortOn parameter adalah
  • The parameter orientasi memegang nilai xlTopToBottom karena ini wajib.
  • Warna untuk mengurutkan adalah dalam istilah RGB yang memiliki nilai dari 0 untuk 255 .

Baca selengkapnya: Cara Mengurutkan Dua Kolom di Excel untuk Mencocokkan (Baik Pencocokan Tepat dan Parsial)

6. Ubah Orientasi ke Rentang Urutan Menggunakan Excel VBA

Menggunakan orientasi kita dapat mengubah cara kita ingin mengurutkan data. Dalam contoh ini, kita memiliki ditransposisikan dataset kami untuk sortir itu secara horizontal .

Mari kita letakkan kode berikut di editor visual basic dan tekan F5 untuk menjalankannya.

 Sub Orientasi() Range("B4:H6").Sort Key1:=Range("B6"), _ Order1:=xlAscending, _ Orientasi:=xlSortRows, _ Header:=xlYes End Sub 

Di sini kita diurutkan data berdasarkan pada baris usia di naik pesanan dari kiri untuk benar Di dalam kode, kita menetapkan orientasi parameter sebagai xlSortRows .

Konten Terkait: Cara Mengurutkan Beberapa Kolom Secara Otomatis di Excel (3 Cara)

Hal-hal yang Perlu Diingat

  • The Parameter SortOn yang kami gunakan untuk sortir rentang kolom berdasarkan warna latar belakang dan warna font hanya bisa digunakan oleh objek lembar kerja Kita tidak bisa menggunakannya dengan objek jangkauan .
  • The Peristiwa BeforeDoubleClick mengurutkan data hanya dalam naik.

Kesimpulan

Sekarang, kita tahu cara mengurutkan rentang menggunakan VBA di Excel. Semoga ini akan mendorong Anda untuk menggunakan ini dengan lebih percaya diri. Ada pertanyaan atau saran jangan lupa untuk memasukkannya ke dalam kotak komentar di bawah ini.

Hugh West adalah pelatih dan analis Excel yang sangat berpengalaman dengan pengalaman lebih dari 10 tahun di industri ini. Beliau meraih gelar Sarjana di bidang Akuntansi dan Keuangan dan gelar Master di bidang Administrasi Bisnis. Hugh memiliki hasrat untuk mengajar dan telah mengembangkan pendekatan pengajaran unik yang mudah diikuti dan dipahami. Pengetahuan ahlinya tentang Excel telah membantu ribuan siswa dan profesional di seluruh dunia meningkatkan keterampilan dan unggul dalam karier mereka. Melalui blognya, Hugh membagikan pengetahuannya kepada dunia, menawarkan tutorial Excel gratis dan pelatihan online untuk membantu individu dan bisnis mencapai potensi penuh mereka.