Note: The other languages of the website are Google-translated. Back to English
English English

 Bagaimana cara memilih kolom berdasarkan header kolom di Excel?

Misalkan, Anda memiliki lembar kerja besar yang berisi banyak kolom, dan sekarang, Anda ingin memilih kolom tertentu berdasarkan nama tajuk kolom. Untuk menemukan kolom demi kolom di lembar kerja besar akan membuang banyak waktu, artikel ini, saya akan memperkenalkan metode cepat untuk menyelesaikan pekerjaan ini di Excel.

Pilih kolom berdasarkan nama header kolom dengan kode VBA


Pilih kolom berdasarkan nama header kolom dengan kode VBA


Kode VBA berikut dapat membantu Anda memilih kolom berdasarkan nama header tertentu, lakukan seperti ini:

1. Tahan ALT + F11 kunci untuk membuka Microsoft Visual Basic untuk Aplikasi jendela.

2. Klik Menyisipkan > Modul, dan tempel kode berikut di Modul Jendela.

Kode VBA: Pilih kolom berdasarkan nama header kolom:

Sub FindAddressColumn()
'Updateby Extendoffcie
    Dim xRg As Range
    Dim xRgUni As Range
    Dim xFirstAddress As String
    Dim xStr As String
    On Error Resume Next
    xStr = "Name"
    Set xRg = Range("A1:P1").Find(xStr, , xlValues, xlWhole, , , True)
    If Not xRg Is Nothing Then
        xFirstAddress = xRg.Address
        Do
            Set xRg = Range("A1:P1").FindNext(xRg)
            If xRgUni Is Nothing Then
                Set xRgUni = xRg
            Else
                Set xRgUni = Application.Union(xRgUni, xRg)
            End If
        Loop While (Not xRg Is Nothing) And (xRg.Address <> xFirstAddress)
    End If
    xRgUni.EntireColumn.Select
End Sub

Note: Pada kode di atas, A1: P1 adalah rentang tajuk yang kolomnya ingin Anda pilih, dan "Nama"Di skrip xStr = "Nama" adalah nama header yang ingin Anda pilih berdasarkan kolom. Harap ubah sesuai kebutuhan Anda.

3. Setelah menyalin dan menempel kode, silakan tekan F5 kunci untuk menjalankan kode ini, dan semua kolom dengan nama tajuk tertentu telah dipilih sekaligus, lihat tangkapan layar:


Alat Produktivitas Kantor Terbaik

Kutools for Excel Memecahkan Sebagian Besar Masalah Anda, dan Meningkatkan Produktivitas Anda hingga 80%

  • Reuse: Masukkan dengan cepat rumus, bagan yang kompleks dan apa pun yang pernah Anda gunakan sebelumnya; Enkripsi Sel dengan kata sandi; Buat Milis dan mengirim email ...
  • Bilah Formula Super (dengan mudah mengedit beberapa baris teks dan rumus); Membaca Tata Letak (membaca dan mengedit sel dalam jumlah besar dengan mudah); Tempel ke Rentang yang Difilter...
  • Gabungkan Sel / Baris / Kolom tanpa kehilangan Data; Pisahkan Konten Sel; Gabungkan Baris / Kolom Duplikat... Mencegah Sel Duplikat; Bandingkan Rentang...
  • Pilih Duplikat atau Unik Baris; Pilih Baris Kosong (semua sel kosong); Temukan Super dan Temukan Fuzzy di Banyak Buku Kerja; Pilih Acak ...
  • Salinan Tepat Beberapa Sel tanpa mengubah referensi rumus; Buat Referensi Otomatis ke Beberapa Lembar; Sisipkan Poin, Kotak Centang, dan lainnya ...
  • Ekstrak Teks, Tambahkan Teks, Hapus berdasarkan Posisi, Hapus Space; Membuat dan Mencetak Subtotal Paging; Konversi Konten Antar Sel dan Komentar...
  • Filter Super (simpan dan terapkan skema filter ke sheet lain); Penyortiran Lanjutan menurut bulan / minggu / hari, frekuensi dan lainnya; Filter Khusus dengan huruf tebal, miring ...
  • Gabungkan Workbooks dan WorkSheets; Gabungkan Tabel berdasarkan kolom kunci; Pisahkan Data menjadi Beberapa Lembar; Konversi Batch xls, xlsx dan PDF...
  • Lebih dari 300 fitur canggih. Mendukung Office / Excel 2007-2019 dan 365. Mendukung semua bahasa. Penerapan yang mudah di perusahaan atau organisasi Anda. Fitur lengkap uji coba gratis 30 hari. Jaminan uang kembali 60 hari.
tab kte 201905

Tab Office Membawa antarmuka Tab ke Office, dan Membuat Pekerjaan Anda Jauh Lebih Mudah

  • Aktifkan pengeditan dan pembacaan tab di Word, Excel, PowerPoint, Publisher, Access, Visio, dan Project.
  • Buka dan buat banyak dokumen di tab baru di jendela yang sama, bukan di jendela baru.
  • Tingkatkan produktivitas Anda hingga 50%, dan kurangi ratusan klik mouse untuk Anda setiap hari!
officetab bawah
Urutkan komentar berdasarkan
komentar (6)
Belum ada peringkat. Jadilah yang pertama memberi peringkat!
Komentar ini diminimalkan oleh moderator di situs
Ini bagus, tetapi bagaimana jika saya ingin menyalin katakan, CustomerName, OrderNumber, OrderDate, FulfillmentDate, OrderStatus dari Sheet1 dengan lebih banyak kolom.
Bagaimana saya hanya menentukan kolom yang perlu disalin ke lembar lain? Ini sepertinya hanya menentukan satu kolom.
Saya telah mencoba beberapa hal, tetapi masalahnya lebih pada kolom-kolom yang tidak selalu dalam urutan yang sama pada lembar sumber. Data sumber di Sheet1 ditempelkan dari clipboard Windows ke lembar Excel.

Mungkin, NamaPelanggan, TanggalPesanan,NomorPesanan,Tanggal Pemenuhan StatusPesanan atau pesanan lainnya.

Saya ingin mereka disalin ke lembar baru dalam urutan tertentu karena ada rumus di Sheet2 yang diterapkan pada apa yang disalin dari Sheet1 ke Sheet2.

Selain menggeser kolom setelah menempel dari clipboard Windows, saya tidak dapat mengetahuinya.

Mohon bantuannya jika memungkinkan.

Terima kasih untuk hal di atas.
Komentar ini diminimalkan oleh moderator di situs
Redupkan xRg Sebagai Rentang
Redupkan xRgUni Sebagai Rentang
Redupkan xFirstAddress Sebagai String
Redupkan xStr Sebagai String

Apakah variabel sedang dideklarasikan.

Oleh karena itu untuk menggunakan kode di atas lagi untuk kolom lain Anda harus mendeklarasikan variabel baru.

Redupkan xRg2 Sebagai Rentang
Redupkan xRgUni2 Sebagai Rentang
Redupkan xFirstAddress2 Sebagai String
Redupkan xStr2 Sebagai String

Dan ganti setiap instance xRg dengan xRg2 dalam kode dll. Apakah itu masuk akal?
Komentar ini diminimalkan oleh moderator di situs
Hai, terlihat sangat bagus. Tapi saya mendapatkan kesalahan kompilasi: Argumen tidak opsional saat menyorot ". Union". Apa yang harus saya lakukan?
Komentar ini diminimalkan oleh moderator di situs
Terima kasih - pada awalnya tampaknya berhasil, tetapi kemudian saya perhatikan itu tidak termasuk kolom yang ditemukan pertama - itu dimulai dengan yang kedua dan seterusnya.

Yang bisa dijelaskan: Anda menyetel xRg dua kali, tetapi Anda tidak menyertakan yang pertama.

TBH: awalnya saya pikir itu berfungsi dengan baik, tetapi kemudian 'kesalahan' itu muncul dan saya harus mencari tahu mengapa....

Saya memperbaikinya sebagai berikut: (di Excel, komentar akan berubah menjadi hijau dan menunjukkan hasil edit saya: '***)



Sub TemukanAddressColumn()

'Perbarui oleh Extendoffcie

Redupkan xRg Sebagai Rentang

Redupkan xRgUni Sebagai Rentang

Redupkan xFirstAddress Sebagai String

Redupkan xStr Sebagai String

On Error Resume Next
xStr = "Nama"
Tetapkan xRg = Range("A1:P1").Temukan(xStr, , xlValues, xlPart, , , True)

Jika Tidak xRg Bukan Apa-apa Maka

xFirstAddress = xRg.Alamat

Do

Jika xRgUni Bukan Apa-apa Maka

Setel xRgUni = Range(xFirstAddress) '*** Menggunakan rentang yang pertama kali ditemukan

Lain

Setel xRgUni = Application.Union(xRgUni, xRg)

End If



Set xRg = Range("A1:P1").FindNext(xRg) '*** Sekarang mencari yang kedua/berikutnya



Loop While (Bukan xRg Bukan Apa-apa) Dan (xRg.Address <> xFirstAddress)

End If

xRgUni.EntireColumn.Pilih

End Sub




Ini sekarang bekerja untuk saya, tetapi saya berharap untuk belajar dari Anda jika saya mengabaikan sesuatu.
Komentar ini diminimalkan oleh moderator di situs
Hai, Bisakah Anda menyarankan makro untuk masalah yang disebutkan di bawah oleh Shaun
Komentar ini diminimalkan oleh moderator di situs
Terima kasih banyak menyelamatkan hari saya!
Belum ada komentar yang diposting di sini
Tinggalkan komentar anda
Posting sebagai Tamu
×
Beri peringkat pos ini:
0   Karakter
Lokasi yang Disarankan