Daftar dropdown dengan multi-pilih

Daftar drop-down klasik dalam lembar Excel sangat bagus, tetapi hanya memungkinkan Anda untuk memilih satu opsi dari kumpulan yang disajikan. Terkadang inilah yang Anda inginkan, tetapi ada situasi di mana pengguna harus dapat memilih beberapa elemen dari daftar.

Mari kita lihat beberapa implementasi khas dari daftar multi-pilihan semacam itu.

Opsi 1. Horisontal

Pengguna memilih item dari daftar drop-down satu per satu, dan item tersebut muncul di sebelah kanan sel yang sedang diubah, secara otomatis terdaftar secara horizontal:

Daftar drop-down di sel C2:C5 dalam contoh ini dibuat dengan cara standar, yaitu

  1. pilih sel C2:C5
  2. tab atau menu Data pilih tim Validasi Data
  3. di jendela yang terbuka, pilih opsi Daftar dan tentukan sebagai rentang sumber sel dengan data sumber untuk daftar A1:A8

Maka Anda perlu menambahkan makro ke modul lembar, yang akan melakukan semua pekerjaan utama, yaitu menambahkan nilai yang dipilih di sebelah kanan sel hijau. Untuk melakukan ini, klik kanan pada tab lembar dengan daftar drop-down dan pilih perintah Kode sumber. Tempelkan kode berikut ke jendela editor Visual Basic yang terbuka:

Private Sub Worksheet_Change(ByVal Target As Range) Pada Error Resume Next If Not Intersect(Target, Range("C2:C5")) Tidak Ada Dan Target.Cells.Count = 1 Kemudian Application.EnableEvents = False If Len(Target.Offset (0, 1)) = 0 Kemudian Target.Offset(0, 1) = Target Lain Target.End(xlToRight).Offset(0, 1) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub  

Jika perlu, ganti rentang sensitif dari daftar drop-down C2:C5 di baris kedua kode ini dengan milik Anda.

Opsi 2. Vertikal

Sama seperti di versi sebelumnya, tetapi nilai baru yang dipilih tidak ditambahkan ke kanan, tetapi ke bawah:

Ini dilakukan dengan cara yang persis sama, tetapi kode makro handler sedikit berubah:

Private Sub Worksheet_Change(ByVal Target As Range) Pada Error Resume Next If Not Intersect(Target, Range("C2:F2")) Tidak Ada Dan Target.Cells.Count = 1 Kemudian Application.EnableEvents = False If Len(Target.Offset (1, 0)) = 0 Kemudian Target.Offset(1, 0) = Target Lain Target.End(xlDown).Offset(1, 0) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub  

Sekali lagi, jika perlu, ganti rentang sensitif dari daftar drop-down C2:F2 dengan rentang Anda sendiri di baris kedua kode ini.

Opsi 3. Dengan akumulasi di sel yang sama

Dalam opsi ini, akumulasi terjadi di sel yang sama tempat daftar turun bawah berada. Elemen yang dipilih dipisahkan oleh karakter tertentu (misalnya, koma):

Daftar drop-down dalam sel hijau dibuat dengan cara yang sepenuhnya standar, seperti pada metode sebelumnya. Semua pekerjaan selesai, sekali lagi, oleh makro di modul sheet:

Sub Worksheet_Change Pribadi (Target ByVal Sebagai Rentang) Pada Kesalahan Lanjutkan Berikutnya Jika Tidak Berpotongan (Target, Rentang ("C2: C5")) Tidak Ada Dan Target.Cells.Count = 1 Kemudian Application.EnableEvents = False newVal = Target Application.Undo oldval = Target Jika Len(oldval) <> 0 Dan oldval <> newVal Then Target = Target & "," & newVal Else Target = newVal End Jika Jika Len(newVal) = 0 Maka Target.ClearContents Application.EnableEvents = True End If Akhir Sub  

Jika diinginkan, Anda dapat mengganti karakter pemisah (koma) di baris ke-9 kode dengan karakter Anda sendiri (misalnya, spasi atau titik koma).

  • Cara membuat daftar drop-down sederhana di sel lembar excel
  • Daftar tarik-turun dengan konten
  • Daftar tarik-turun dengan opsi yang hilang ditambahkan
  • Apa itu makro, bagaimana menggunakannya, di mana menyisipkan kode makro di Visual Basic

Tinggalkan Balasan