Daptar dropdown kalawan multi-pilih

Daptar turun-handap klasik dina lambaran Excel saé, tapi ngan ukur ngamungkinkeun anjeun milih hiji pilihan tina set anu dibere. Kadang-kadang ieu mangrupikeun anu anjeun pikahoyong, tapi aya kaayaan dimana pangguna kedah tiasa milih sababaraha elemen tina daptar.

Hayu urang tingali sababaraha palaksanaan has tina daptar multi-pilih sapertos kitu.

Pilihan 1. Horizontal

Pamaké milih item tina daptar turun-handap hiji-hiji, sareng aranjeunna muncul di katuhu sél anu dirobih, otomatis didaptarkeun sacara horisontal:

Daptar turun-handap dina sél C2:C5 dina conto ieu didamel ku cara standar, nyaéta

  1. pilih sél C2: C5
  2. tab atawa menu data milih tim Validasi Data
  3. dina jandela nu muka, pilih hiji pilihan daptar jeung nangtukeun salaku rentang sumber sél jeung data sumber pikeun daptar A1:A8

Teras anjeun kedah nambihan makro kana modul lambar, anu bakal ngalaksanakeun sadaya padamelan utama, nyaéta nambihan nilai anu dipilih di katuhu sél héjo. Jang ngalampahkeun ieu, klik-katuhu dina tab lambar sareng daptar turun-handap sareng pilih paréntahna Kode sumber. Tempelkeun kodeu di handap ieu kana jandela pangropéa Visual Basic anu muka:

Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("C2:C5")) Is Euweuh Jeung Target.Cells.Count = 1 Then Application.EnableEvents = Palsu Lamun Len(Target.Offset (0, 1)) = 0 Lajeng Target.Offset(0, 1) = Target Lain Target.End(xlToRight).Offset(0, 1) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub  

Upami diperlukeun, ngaganti rentang sénsitip tina daptar turun-handap C2: C5 dina baris kadua kode ieu kalawan anjeun sorangan.

Pilihan 2. Nangtung

Sarua sareng dina versi sateuacana, tapi nilai-nilai anu dipilih anyar henteu ditambahkeun ka katuhu, tapi ka handap:

Hal ieu dilakukeun dina cara anu sami, tapi kode makro panangan rada robih:

Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("C2:F2")) Is Euweuh Jeung Target.Cells.Count = 1 Then Application.EnableEvents = Palsu Lamun Len(Target.Offset (1, 0)) = 0 Lajeng Target.Offset(1, 0) = Target Lain Target.End(xlDown).Offset(1, 0) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub  

Sakali deui, upami perlu, ganti rentang sénsitip tina daptar turun-handap C2:F2 sareng anjeun dina baris kadua kode ieu.

Pilihan 3. Kalawan akumulasi dina sél sarua

Dina pilihan ieu, akumulasi lumangsung dina sél anu sarua dimana daptar turun-handap ayana. Unsur-unsur anu dipilih dipisahkeun ku karakter naon waé (contona, koma):

Daptar turun-handap dina sél héjo dijieun dina cara lengkep standar, saperti dina métode saméméhna. Sadaya padamelan parantos dilakukeun, deui, ku makro dina modul lambar:

Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("C2:C5")) Is Euweuh Jeung Target.Cells.Count = 1 Then Application.EnableEvents = Palsu newVal = Target Application.Undo oldval = Target Lamun Len(oldval) <> 0 Jeung oldval <> newVal Lajeng Target = Target & "," & newVal Lain Target = newVal Tungtung Lamun Len(newVal) = 0 Lajeng Target.ClearContents Application.EnableEvents = True End Lamun Tungtung Sub  

Upami hoyong, anjeun tiasa ngagentos karakter separator (koma) dina baris ka-9 kode ku anjeun sorangan (contona, spasi atanapi titik koma).

  • Kumaha cara ngadamel daptar turun anu sederhana dina sél lambar Excel
  • Daptar dropdown kalawan eusi
  • Daptar dropdown kalawan pilihan leungit ditambahkeun
  • Naon macros, kumaha carana make eta, dimana nyelapkeun kode makro dina Visual Basic

Leave a Reply