Susun VBA - Petua Excel

Isi kandungan

Makro Excel VBA untuk menyusun data. Saya tidak suka bagaimana perakam makro membuat kod tambahan untuk disusun. Menyusun dalam Excel VBA semestinya mudah. Satu baris kod, dengan lajur yang hendak disusun, ke arah mana (naik atau turun) dan ada tajuk.

Tonton Video

  • Perakam makro Excel tidak berfungsi dengan baik dengan menyusun rakaman.
  • Dengan syarat data anda dapat dipilih menggunakan Ctrl + * (dikenal sebagai Wilayah Semasa)
  • Dengan syarat anda tidak menyusun mengikut warna atau ikon atau lebih dari tiga tingkat
  • Gunakan kaedah sekolah lama (). CurrentRegion.Sort dalam Excel

Transkrip Video

Belajar Excel dari MrExcel Podcast, Episode 2093: Menyusun Dengan VBA

Hei, selamat datang kembali ke netcast, saya Bill Jelen. Soalan hari ini dari James di Huntsville. James, saya menggunakan perakam makro untuk merakam tindakan menyusun data. Oleh itu, katakan bahawa James perlu menyusun data ini mengikut Sektor dan Pelanggan. Oleh itu, anda keluar ke sini ke tab View, Macros, Record New Macro, SortMyReports, Shortcut Key Ctrl - Saya akan menaip Shift + S di sana, dan klik OK. Baiklah, jadi dari sini kita lakukan: Data, Susun, dan kita ingin mengatakan bahawa kita mahu Urutkan mengikut Sektor dan kemudian Tambah Tahap dan Urutkan mengikut Pelanggan, dan klik OK. Di sudut kiri bawah, kami klik Hentikan Rakaman. Baiklah, jadi ada. Nampaknya sudah berjaya, bukan?

Tetapi inilah masalahnya: esok anda akan mempunyai lebih banyak data atau kurang data atau, anda tahu, apa sahaja. Makro yang dirakam itu mengerikan. Mari kita lihat, saya akan lakukan Alt + F8 dan lihatlah SortMyReport, akan Edit itu. Baiklah, dan ini semua yang mereka rakam sehingga SortFields.Clear, dan kemudian mereka menyusun jenis baru dengan SortFields. Tambah dan mereka berkod keras, dan ada 568 baris, dan semua perkara.

Sekarang menyusun semula, saya sangat mudah. Baiklah, dan kemudian di Excel 2007 mereka menambahkan Sort by Icon, Sort by Colour, Sort by Font Color, kemampuan untuk memiliki 15 Level Level dan semuanya baru benar-benar gila. Jadi, saya tidak lagi menggunakan Makro Tercatat. Saya baru pergi sekolah lama.

Sekarang, saya akan beralih kembali ke Excel. Berikut adalah peraturan untuk menyusun sekolah lama ini agar tidak berfungsi. Tajuk di atas setiap Lajur: tajuk itu harus berada pada satu baris, bukan dua baris. Sekiranya anda mempunyai tajuk di sana dan tidak mengapa mempunyai tajuk di sana. Anda memerlukan baris kosong antara tajuk anda dan tajuk pertama. Sekiranya anda mempunyai catatan di sebelah kanan: isteri anda memanggil dengan senarai runcit, “Hai, sayang, berhenti dalam perjalanan pulang. Dapatkan susu, telur dan vodka. " Harus ada ruang kosong sepenuhnya antara data anda dan itu. Dan jika terdapat nota pelat di bahagian bawah, pastikan terdapat baris kosong antara bit data terakhir dan nota tersebut.

Seluruh tujuan saya adalah bahawa kita harus dapat datang ke mana-mana satu sel: sel sudut kiri atas data ini dan tekan Ctrl + * dan ia akan memilih data yang akan disusun. Sekarang, saya akan menekan Ctrl +. yang membawa kita ke sudut ini dan kemudian Ctrl +. akan membawa kita ke sudut kanan bawah, Ctrl +. membawa kami ke sudut kiri bawah. Baiklah, jadi jika Ctrl + * akan memilih data anda dengan betul maka semuanya bagus. Sekiranya anda memasukkan senarai barang runcit anda di Lajur H dan kami melihat kami datang ke sini dan Ctrl + *, sekarang, kami menyusun senarai barang runcit sebagai sebahagian daripada perkara tersebut dan senarai runcit anda akan bertambah buruk. Atau kita akan buat asal: jika baris ini tidak ada di sini, sekarang kita lakukan Ctrl + *, lihatlah kita - sekarang mereka tidak tahu kerana mereka tidak mempunyai tajuk lagi, okey?

Oleh itu, jika anda akan menggunakan kod saya, pastikan semua peraturan ini benar: tidak menyusun warna saya, tidak menyusun ikon saya, 3 atau kurang tahap urutan. Buat asal, baiklah. Jadi inilah yang kami tahu: kami tahu bahawa setiap hari data kami akan bermula di A5. Sekiranya kita tidak tahu berapa banyak baris atau berapa banyak - bahkan berapa banyak lajur yang mungkin kita ada. Saya tidak dapat membayangkan keadaan di mana lajur ditukar tetapi pasti bilangan baris akan berubah. Jadi Alt + F11, kita hanya akan bermula dari sel sudut kiri atas. Jadi Range, dalam kes saya adalah "A5" .CurrentRegion. Kawasan semasa adalah harta bangunan yang mengagumkan ini yang mengatakan bahawa kita akan menekan Ctrl + Shift + * dan semua yang disertakan adalah apa yang akan disusun. Dan kita lakukan. Susun. .Susun, baiklah.

Sekarang, inilah perkara. Sekiranya anda ingin melakukan satu peringkat adalah mudah: Key1: =. : = dan kami hanya mengatakan bahawa ia akan menjadi Range - Oh saya lupa apa itu. Itu adalah Sektor, di mana Sektor? Sektor ada di Lajur C. Jadi C5 dalam kes saya, Range ("C5") dan kemudian, Order1: = xlAkhir. Saya menekan kekunci Panah Bawah di sana, dan kemudian Tab. Baiklah sekarang, saya boleh terus keluar ke kanan tetapi saya tidak akan melakukannya. Saya akan pergi ke baris baru sehingga ruang, garis bawah untuk pergi ke baris baru, teruskan garis kod ini, baiklah? Dan jika saya mempunyai urutan tahap kedua: Key2: = dan dalam kes ini saya ingin menyusun mengikut pelanggan yang ada di Lajur D, jadi D5. Dan kemudian, Order2: xlAkhir. Cantik.

Saya tidak mempunyai jenis tahap ketiga tetapi jika anda melakukannya, itu adalah Key3 dan kemudian Order3. Dan yang berikutnya, yang harus anda lakukan ialah Header, baiklah? Oleh itu, Header: = xlTahu di situlah anda mendapat banyak masalah. Oleh itu, kita akan mengatakan bahawa di sana, pasti sebagai Header. Walaupun pada masa lalu, Macro Recorder akan menggunakan xlGuess. Saya benci Excel meneka.

Itu sahaja. Satu baris kod, itu sahaja yang perlu anda lakukan dan ia akan berfungsi dengan lebih banyak baris, lebih sedikit baris. Ia adalah perkara yang indah, indah. Baiklah, jadi kami akan kembali ke sini ke Excel. Ctrl + Shift + S masih merupakan perkara yang diberikan. Sekarang- Sekiranya anda hanya beralih ke VBA dan anda menaipnya sendiri, anda boleh pergi ke Alt + F8, cari nama Makro anda, klik Pilihan dan ketik Ctrl + Shift + S di sana atau kami bahkan boleh menetapkannya ke Kekunci pintasan di sini di Bar Alat Akses Pantas. Klik kanan, Peribadikan Bar Alat Akses Pantas di mana saya memilih dari Makro kami. Saya mempunyai Makro yang dipanggil SortMyReport, akan klik Tambah - Saya benci carta alir kecil di sana. Kami akan mengubahnya dan saya ingin ada situasi A hingga Z di sana tetapi tentu saja tidak ada. Mungkin anak panah yang tahu, siapa tahu, pilih saja apa sahaja.8 bola yang ajaib, saya tidak tahu. Saya akan memilih lelaki kecil ini di sini, klik OK, klik OK. Baiklah, jadi sekarang data kami Disusun mengikut Tarikh, saya pilih - dan tidak kira apa yang saya pilih. Selalu akan kembali dan menyusunnya dari A5, saya mengklik si kecil dan data saya kini Diurutkan mengikut Sektor, di dalam sektor, oleh Pelanggan. Ia berfungsi dengan baik, bukan?

Oleh itu, jika anda peminat Macro Recorder, saya ucapkan selamat maju jaya kepada anda. Tetapi kod Perakam Makro hari ini untuk penyortiran yang disusun dalam VBA jauh lebih mudah; untuk kembali sahaja, gunakan dasarnya satu baris kod ini.

Baiklah, biasanya inilah tempat saya mencuba dan meminta anda membeli buku ini, tetapi hari ini saya rasa anda harus melihat buku ini: Excel 2016 VBA dan Makro oleh Tracy dan saya sendiri. Wah! Lihat ini. Saya tidak sedar ada versi dalam bahasa lain. Kami akan memberi anda Keluk Pembelajaran Makro sepenuhnya dari merakam Makro pertama anda ke kod yang anda perlukan.

Baiklah, pembungkus ringkas untuk hari ini: Perakam Makro Excel tidak berfungsi dengan baik dengan rakaman, menyusun: dengan syarat data anda dapat dipilih menggunakan Ctrl + * yang dikenali sebagai wilayah semasa, dengan syarat anda tidak menyusun seperti warna atau ikon atau lebih daripada tiga tahap, hanya gunakan Range sekolah lama (). Kaedah CurrentRegion.Sort dalam VBA untuk menyusun.

Saya ingin mengucapkan terima kasih kepada James kerana telah menghantar soalan itu. Saya ingin mengucapkan terima kasih kerana berhenti. Kami akan berjumpa anda di lain kali untuk siaran net lain dari.

Muat turun fail

Muat turun fail sampel di sini: Podcast2093.xlsm

Artikel menarik...