Fellilisti með fjölvali

Klassíski fellilistinn í Excel blaði er frábær, en hann gerir þér aðeins kleift að velja einn valmöguleika úr settinu sem er kynnt. Stundum er þetta nákvæmlega það sem þú vilt, en það eru aðstæður þar sem notandinn þarf að geta valið sumar þættir af listanum.

Við skulum skoða nokkrar dæmigerðar útfærslur á slíkum fjölvalslista.

Valkostur 1. Lárétt

Notandinn velur hluti af fellilistanum eitt í einu og þeir birtast hægra megin við reitinn sem verið er að breyta, sjálfkrafa skráð lárétt:

Fellilistar í hólfum C2:C5 í þessu dæmi eru búnir til á staðlaðan hátt, þ.e

  1. veldu frumur C2:C5
  2. flipa eða valmynd Gögn velja lið Staðfesting gagna
  3. Veldu valkost í glugganum sem opnast Listi og tilgreindu sem svið Heimild frumur með upprunagögnum fyrir lista A1:A8

Síðan þarftu að bæta við fjölvi við blaðeininguna, sem mun gera alla aðalvinnuna, þ.e. bæta völdum gildum við hægra megin við grænu reitina. Til að gera þetta skaltu hægrismella á blaðflipann með fellilistanum og velja skipunina Kóðinn. Límdu eftirfarandi kóða inn í Visual Basic ritstjóragluggann sem opnast:

Private Sub Worksheet_Change(ByVal Target As Range) On Villa Resume Next If Not Intersect(Target, Range("C2:C5")) Is Nothing And Target.Cells.Count = 1 Then Application.EnableEvents = False If Len(Target.Offset) (0, 1)) = 0 Þá Target.Offset(0, 1) = Target Else Target.End(xlToRight).Offset(0, 1) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub  

Ef nauðsyn krefur skaltu skipta út viðkvæmu sviðinu í fellilistanum C2:C5 í annarri línu þessa kóða fyrir þinn eigin.

Valkostur 2. Lóðrétt

Sama og í fyrri útgáfu, en nýju valin gildi eru ekki bætt við hægri, heldur neðst:

Það er gert á nákvæmlega sama hátt, en makrókóði stjórnandans breytist lítillega:

Private Sub Worksheet_Change(ByVal Target As Range) On Villa Resume Next If Not Intersect(Target, Range("C2:F2")) Is Nothing And Target.Cells.Count = 1 Then Application.EnableEvents = False If Len(Target.Offset) (1, 0)) = 0 Þá Target.Offset(1, 0) = Target Else Target.End(xlDown).Offset(1, 0) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub  

Aftur, ef nauðsyn krefur, skipta um viðkvæma svið C2:F2 fellilistanna fyrir þína eigin í annarri línu þessa kóða.

Valkostur 3. Með uppsöfnun í sama klefa

Í þessum valkosti á sér stað uppsöfnun í sama reit þar sem fellilistinn er staðsettur. Valdir þættir eru aðskildir með hvaða tákni sem er (til dæmis kommu):

Fellilistar í grænum hólfum eru búnir til á algjörlega staðlaðan hátt eins og í fyrri aðferðum. Öll vinna er unnin, aftur, með fjölvi í blaðeiningunni:

Private Sub Worksheet_Change(ByVal Target As Range) On Villa Resume Next If Not Intersect(Target, Range("C2:C5")) Is Nothing And Target.Cells.Count = 1 Then Application.EnableEvents = False newVal = Target Application.Undo oldval = Target If Len(oldval) <> 0 Og oldval <> newVal Then Target = Target & "," & newVal Else Target = newVal End If If Len(newVal) = 0 Then Target.ClearContents Application.EnableEvents = True End If End Sub  

Ef þú vilt geturðu skipt út skiljustafnum (kommu) í 9. línu kóðans fyrir þinn eigin (til dæmis bil eða semíkommu).

  • Hvernig á að búa til einfaldan fellilista í excel blaðreit
  • Fellilisti með efni
  • Fellilisti með valkostum sem vantar bætt við
  • Hvað eru fjölvi, hvernig á að nota þau, hvar á að setja inn fjölvakóða í Visual Basic

Skildu eftir skilaboð