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
- pilih sél C2: C5
- tab atawa menu data milih tim Validasi Data
- 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