Orodha kunjuzi yenye chaguo nyingi

Orodha ya kunjuzi ya classic katika karatasi ya Excel ni nzuri, lakini inakuwezesha kuchagua chaguo moja kutoka kwa seti iliyowasilishwa. Wakati mwingine hii ndiyo hasa unayotaka, lakini kuna hali ambapo mtumiaji anahitaji kuwa na uwezo wa kuchagua baadhi vipengele kutoka kwenye orodha.

Wacha tuangalie utekelezaji kadhaa wa kawaida wa orodha kama hiyo iliyochaguliwa nyingi.

Chaguo 1. Mlalo

Mtumiaji huchagua vipengee kutoka kwa orodha kunjuzi moja baada ya nyingine, na vinaonekana upande wa kulia wa kisanduku kikibadilishwa, vikiorodheshwa kiotomatiki kwa mlalo:

Orodha kunjuzi katika seli C2:C5 katika mfano huu zimeundwa kwa njia ya kawaida, yaani

  1. chagua seli C2:C5
  2. kichupo au menyu Data chagua timu Uthibitishaji wa Takwimu
  3. katika dirisha linalofungua, chagua chaguo orodha na ubainishe kama masafa chanzo seli zilizo na data chanzo kwa orodha A1:A8

Kisha unahitaji kuongeza jumla kwenye moduli ya karatasi, ambayo itafanya kazi yote kuu, yaani, ongeza maadili yaliyochaguliwa kwa haki ya seli za kijani. Ili kufanya hivyo, bonyeza-click kwenye kichupo cha karatasi na orodha za kushuka na uchague amri Chanzo code. Bandika nambari ifuatayo kwenye dirisha la mhariri wa Visual Basic linalofungua:

Laha-Kazi ya Kibinafsi_Change(ByVal Target Kama Masafa) Kwenye Hitilafu Endelea tena Ijayo Ikiwa Sio Kuingiliana(Lengo, Masafa("C2:C5")) Si Kitu Na Target.Cells.Count = 1 Kisha Application.EnableEvents = False If Len(Target.Offset) (0, 1)) = 0 Kisha Target.Offset(0, 1) = Target Else Target.End(xlToRight).Offset(0, 1) = Mwisho Lengwa Ikiwa Target.ClearContents Application.EnableEvents = True End If End Sub  

Ikihitajika, badilisha safu nyeti ya orodha kunjuzi C2:C5 katika mstari wa pili wa msimbo huu na yako mwenyewe.

Chaguo 2. Wima

Sawa na katika toleo la awali, lakini maadili mapya yaliyochaguliwa hayaongezwa kwa kulia, lakini chini:

Inafanywa kwa njia ile ile, lakini msimbo wa macro hubadilika kidogo:

Laha Ndogo ya Kibinafsi_Change(ByVal Target Kama Masafa) Kwenye Hitilafu Endelea tena Ijayo Ikiwa Sio Kuingiliana(Lengo, Msururu("C2:F2")) Si Kitu Na Target.Cells.Count = 1 Kisha Application.EnableEvents = False If Len(Target.Offset) (1, 0)) = 0 Kisha Target.Offset(1, 0) = Target Else Target.End(xlDown).Offset(1, 0) = Mwisho Lengwa Ikiwa Target.ClearContents Application.EnableEvents = True End If End Sub  

Tena, ikiwa ni lazima, badilisha safu nyeti ya orodha kunjuzi za C2:F2 na yako mwenyewe katika mstari wa pili wa msimbo huu.

Chaguo 3. Pamoja na mkusanyiko katika seli moja

Katika chaguo hili, mkusanyiko hutokea kwenye seli moja ambapo orodha ya kushuka iko. Vipengele vilivyochaguliwa vinatenganishwa na herufi yoyote (kwa mfano, koma):

Orodha za kushuka katika seli za kijani huundwa kwa njia ya kawaida kabisa, kama katika njia za awali. Kazi yote imefanywa, tena, na macro kwenye moduli ya karatasi:

Laha-Kazi ya Kibinafsi_Change(ByVal Target Kama Masafa) Kwenye Hitilafu Endelea tena Ijayo Ikiwa Sio Kuingiliana(Lengo, Masafa("C2:C5")) Si Kitu Na Target.Cells.Count = 1 Kisha Application.EnableEvents = False newVal = Programu inayolengwa.Tendua oldval = Target Kama Len(oldval) <> 0 Na oldval <> newVal Then Target = Target & "," & newVal Else Target = newVal End If If Len(newVal) = 0 Kisha Target.ClearContents Application.EnableEvents = Mwisho wa Kweli Ikiwa Maliza Sub  

Ikiwa inataka, unaweza kubadilisha herufi ya kitenganishi (koma) katika safu ya 9 ya msimbo na yako mwenyewe (kwa mfano, nafasi au semicolon).

  • Jinsi ya kuunda orodha rahisi ya kushuka kwenye seli ya karatasi bora
  • Orodha kunjuzi yenye maudhui
  • Orodha kunjuzi na chaguo zinazokosekana zimeongezwa
  • Macros ni nini, jinsi ya kuzitumia, wapi kuingiza msimbo wa jumla katika Visual Basic

Acha Reply