Rippmenüü koos mitmikvalikuga

Exceli lehe klassikaline rippmenüü on suurepärane, kuid see võimaldab teil esitatud komplektist valida ainult ühe valiku. Mõnikord on see just see, mida soovite, kuid on olukordi, kus kasutajal peab olema võimalus valida mõned elemendid loendist.

Vaatame mitut tüüpilist sellise mitme valiku loendi rakendust.

Valik 1. Horisontaalne

Kasutaja valib üksused ripploendist ükshaaval ja need kuvatakse muudetavast lahtrist paremal, kuvatakse automaatselt horisontaalselt:

Lahtrites C2:C5 olevad rippmenüüd on antud näites loodud standardsel viisil, st

  1. valige lahtrid C2:C5
  2. vahekaart või menüü kuupäev vali meeskond andmed kinnitamine
  3. avanevas aknas valige suvand nimekiri ja määrake vahemikuna allikas lahtrid lähteandmetega loendi A1:A8 jaoks

Seejärel tuleb lehemoodulile lisada makro, mis teeb ära kogu põhitöö ehk lisab valitud väärtused rohelistest lahtritest paremale. Selleks paremklõpsake ripploenditega lehe vahekaarti ja valige käsk Lähtekood. Avanevas Visual Basicu redaktori aknas kleepige järgmine kood:

Private Sub Worksheet_Change(ByVal Target as Range) vea korral Jätka järgmisena, kui ei lõiku(sihtmärk, vahemik("C2:C5")) on mitte midagi ja sihtmärk.Cells.Count = 1 Siis Application.EnableEvents = vale, kui Len(Siht.Nihe (0, 1)) = 0 Siis Target.Offset(0, 1) = Target Else Target.End(xlToRight).Offset(0, 1) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub  

Vajadusel asendage selle koodi teisel real olevate ripploendite C2:C5 tundlik vahemik enda omaga.

Valik 2. Vertikaalne

Sama, mis eelmises versioonis, kuid uued valitud väärtused ei lisata paremale, vaid alla:

Seda tehakse täpselt samamoodi, kuid töötleja makrokood muutub veidi:

Private Sub Worksheet_Change(ByVal Target as Range) vea korral Jätka järgmisena, kui ei lõiku(sihtmärk, vahemik("C2:F2")) ei ole midagi ja sihtmärk.Cells.Count = 1 Siis Application.EnableEvents = Väär, kui Len(Siht.Nihe (1, 0)) = 0 Siis Target.Offset(1, 0) = Target Else Target.End(xlDown).Offset(1, 0) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub  

Jällegi, vajadusel asendage ripploendi C2:F2 tundlik vahemik selle koodi teisel real enda omaga.

Valik 3. Kogunemisega samasse lahtrisse

Selle valiku korral toimub kogunemine samas lahtris, kus asub ripploend. Valitud elemendid eraldatakse mis tahes märgiga (näiteks komaga):

Rohelistes lahtrites olevad rippmenüüd luuakse täiesti standardsel viisil, nagu ka eelmistes meetodites. Kogu töö teeb jällegi lehemooduli makro:

Private Sub Worksheet_Change(ByVal Target as Range) vea korral Jätka järgmisena, kui ei lõiku(sihtmärk, vahemik("C2:C5")) ei ole midagi ja sihtmärk.Cells.Count = 1 Siis Application.EnableEvents = Vale newVal = sihtrakendus.Undo oldval = Target If Len(vanaval) <> 0 Ja oldval <> newVal then Target = Target & "," & newVal Else Sihtmärk = newVal End If If Len(newVal) = 0 then Target.ClearContents Application.EnableEvents = True End If Lõpeta alam  

Soovi korral saate 9. koodireal oleva eraldusmärgi (koma) asendada enda omaga (näiteks tühiku või semikooloniga).

  • Kuidas luua Exceli lehe lahtris lihtsat rippmenüüd
  • Rippmenüü koos sisuga
  • Lisatud puuduvate valikutega rippmenüü
  • Mis on makrod, kuidas neid kasutada, kuhu Visual Basicus makrokoodi sisestada

Jäta vastus