Legördülő lista többszörös kijelöléssel

Az Excel-lap klasszikus legördülő listája nagyszerű, de csak egy opció kiválasztását teszi lehetővé a bemutatott készletből. Néha pontosan ezt szeretné, de vannak helyzetek, amikor a felhasználónak választania kell néhány elemeket a listából.

Nézzünk meg egy ilyen többszörös kijelölésű lista néhány tipikus megvalósítását.

1. lehetőség. Vízszintes

A felhasználó a legördülő listából egyesével kiválasztja az elemeket, amelyek a módosítandó cellától jobbra jelennek meg, automatikusan vízszintesen listázva:

A C2:C5 cellák legördülő listái ebben a példában szabványos módon, pl

  1. válassza ki a C2:C5 cellákat
  2. lapon vagy menüben dátum válassz csapatot adatok ellenőrzése
  3. a megnyíló ablakban válasszon egy lehetőséget Lista és adja meg tartományként forrás cellák az A1:A8 lista forrásadataival

Ezután hozzá kell adnia egy makrót a lapmodulhoz, amely elvégzi az összes fő munkát, azaz hozzáadja a kiválasztott értékeket a zöld cellák jobb oldalán. Ehhez kattintson a jobb gombbal a legördülő listákat tartalmazó lapfülre, és válassza ki a parancsot Forráskód. Illessze be a következő kódot a megnyíló Visual Basic szerkesztő ablakba:

Private Sub Worksheet_Change(ByVal Target as Range) Hiba esetén Folytatás Következő Ha nem Metszik(Cél, Tartomány("C2:C5")) Semmi és Target.Cells.Count = 1 Akkor Application.EnableEvents = Hamis, ha Len(Target.Offset (0, 1)) = 0 Akkor Target.Offset(0, 1) = Target Else Target.End(xlToRight).Offset(0, 1) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub  

Ha szükséges, cserélje ki a kód második sorában található legördülő listák C2:C5 érzékeny tartományát a sajátjára.

2. lehetőség Függőleges

Ugyanaz, mint az előző verzióban, de az új kiválasztott értékek nem jobbra, hanem alulra kerülnek:

Ez pontosan ugyanúgy történik, de a kezelő makrókódja kissé megváltozik:

Private Sub Worksheet_Change(ByVal Target as Range) hiba esetén Folytatás Következő Ha nem Metszik(Cél, Tartomány("C2:F2")) Semmi és Target.Cells.Count = 1 then Application.EnableEvents = Hamis, ha Len(Cél.Eltolás (1, 0)) = 0 Akkor Target.Offset(1, 0) = Target Else Target.End(xlDown).Offset(1, 0) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub  

Ismételten, ha szükséges, cserélje ki a C2:F2 legördülő listák érzékeny tartományát a sajátjára a kód második sorában.

3. lehetőség. Ugyanabban a cellában történő felhalmozással

Ebben az opcióban a felhalmozás ugyanabban a cellában történik, ahol a legördülő lista található. A kiválasztott elemeket tetszőleges karakter választja el (például vessző):

A zöld cellákban lévő legördülő listák az előző módszerekhez hasonlóan teljesen szabványos módon készülnek. Az összes munkát ismét egy makró végzi a lapmodulban:

Private Sub Worksheet_Change(ByVal Target as Range) Hiba esetén Folytatás Next If Not Mets(Cél, Tartomány("C2:C5")) Semmi és Target.Cells.Count = 1 Akkor Application.EnableEvents = False newVal = Célalkalmazás.Undo oldval = Target If Len(oldval) <> 0 and oldval <> newVal then Target = Target & "," & newVal Else Target = newVal End If If Len(newVal) = 0 then Target.ClearContents Application.EnableEvents = True End If Vége Sub  

Ha szükséges, a 9. kódsorban lévő elválasztó karaktert (vesszőt) helyettesítheti a sajátjával (például szóközzel vagy pontosvesszővel).

  • Hogyan készítsünk egy egyszerű legördülő listát egy Excel munkalap cellájában
  • Legördülő lista tartalommal
  • Legördülő lista a hiányzó opciókkal
  • Mik azok a makrók, hogyan kell használni őket, hova kell beszúrni a makrókódot a Visual Basicben

Hagy egy Válaszol