Lista rënëse me shumë përzgjedhje

Lista klasike e lëshimit në një fletë Excel është e mrekullueshme, por ju lejon të zgjidhni vetëm një opsion nga grupi i paraqitur. Ndonjëherë kjo është pikërisht ajo që dëshironi, por ka situata ku përdoruesi duhet të jetë në gjendje të zgjedhë disa elemente nga lista.

Le të shohim disa zbatime tipike të një liste të tillë me shumë përzgjedhje.

Opsioni 1. Horizontal

Përdoruesi zgjedh artikujt nga lista rënëse një nga një dhe ato shfaqen në të djathtë të qelizës që ndryshohet, duke u renditur automatikisht horizontalisht:

Listat drop-down në qelizat C2:C5 në këtë shembull janë krijuar në një mënyrë standarde, dmth

  1. zgjidhni qelizat C2:C5
  2. skedën ose menunë Data zgjidhni një ekip Vlerësimi i të dhënave
  3. në dritaren që hapet, zgjidhni një opsion Listë dhe specifikoni si një varg Burim qelizat me të dhëna burimore për listën A1:A8

Pastaj ju duhet të shtoni një makro në modulin e fletës, i cili do të bëjë të gjithë punën kryesore, dmth. shtoni vlerat e zgjedhura në të djathtë të qelizave jeshile. Për ta bërë këtë, klikoni me të djathtën në skedën e fletës me listat rënëse dhe zgjidhni komandën Source code. Ngjitni kodin e mëposhtëm në dritaren e redaktuesit të Visual Basic që hapet:

Nën-Private Worksheet_Change(ByVal Target As Range) Në Gabim Rifillo Next Nëse nuk Ndërprehet(Target, Range("C2:C5")) Is Nothing And Target.Cells.Count = 1 Pastaj Application.EnableEvents = False If Len(Target.Offset (0, 1)) = 0 Pastaj Target.Offset(0, 1) = Target Tjetër Target.End(xlToRight).Offset(0, 1) = Target Fund If Target.ClearContents Application.EnableEvents = Fundi i vërtetë Nëse Fundi Nën  

Nëse është e nevojshme, zëvendësoni gamën e ndjeshme të listave rënëse C2:C5 në rreshtin e dytë të këtij kodi me tuajin.

Opsioni 2. Vertikale

Njësoj si në versionin e mëparshëm, por vlerat e reja të zgjedhura nuk shtohen në të djathtë, por në fund:

Bëhet saktësisht në të njëjtën mënyrë, por kodi makro i mbajtësit ndryshon pak:

Nën-Private Worksheet_Change(ByVal Target As Range) Në Gabim Rifillo Tjetër Nëse nuk Ndërprehet(Target, Range("C2:F2")) Is Nothing And Target.Cells.Count = 1 Pastaj Application.EnableEvents = False If Len(Target.Offset (1, 0)) = 0 Pastaj Target.Offset(1, 0) = Target Else Target.End(xlDown).Offset(1, 0) = Target Fund If Target.ClearContents Application.EnableEvents = Fundi i vërtetë Nëse Fundi Nën  

Përsëri, nëse është e nevojshme, zëvendësoni gamën e ndjeshme të listave rënëse C2:F2 me tuajën në rreshtin e dytë të këtij kodi.

Opsioni 3. Me akumulim në të njëjtën qelizë

Në këtë opsion, akumulimi ndodh në të njëjtën qelizë ku ndodhet lista rënëse. Elementet e zgjedhura ndahen me çdo karakter të caktuar (për shembull, një presje):

Listat drop-down në qelizat e gjelbra krijohen në një mënyrë krejtësisht standarde, si në metodat e mëparshme. E gjithë puna është bërë, përsëri, nga një makro në modulin e fletës:

Nën-Private Worksheet_Change (ByVal Target As Range) Në Gabim Rifillo Tjetra Nëse Nuk Ndërprehet(Target, Range("C2:C5")) Is Nothing And Target.Cells.Count = 1 Pastaj Application.EnableEvents = False newVal = Target Application.Undo oldval = Target If Len(oldval) <> 0 Dhe oldval <> newVal Pastaj Target = Target & "," & newVal Tjetër Target = newVal Fund Nëse Nëse Len(newVal) = 0 Pastaj Target.ClearContents Application.EnableEvents = Fundi i vërtetë nëse Fundi Nën  

Nëse dëshironi, mund të zëvendësoni karakterin ndarës (presje) në rreshtin e 9-të të kodit me tuajin (për shembull, një hapësirë ​​ose një pikëpresje).

  • Si të krijoni një listë të thjeshtë rënëse në një qelizë të fletës Excel
  • Lista rënëse me përmbajtje
  • Lista rënëse me opsionet që mungojnë të shtuara
  • Çfarë janë makro, si t'i përdorim ato, ku të futni kodin makro në Visual Basic

Lini një Përgjigju