Obsah
Doteraz sme sa pozerali na ako vytvárať rozbaľovacie zoznamy v programe Excel. Dnes ukážem ako vytvoriť rozbaľovací zoznam s viacerými výbermi v programe Excel .
Stiahnite si cvičebnicu
Cvičebnicu si môžete stiahnuť tu.
Vytvorenie rozbaľovacieho zoznamu s viacnásobným výberom.xlsmPostupy krok za krokom na vytvorenie rozbaľovacieho zoznamu v programe Excel s viacerými výbermi
Tu máme súbor údajov so stĺpcom Názov knihy ktorý obsahuje niektoré názvy kníh. Naším dnešným cieľom je vytvoriť na základe tohto súboru údajov rozbaľovací zoznam, ktorý umožňuje viacero výberov. V nasledujúcej časti uvediem postup krok za krokom.
KROK 1: Vytvorenie rozbaľovacieho zoznamu pomocou overovania údajov
Na vytvorenie rozbaľovacieho zoznamu s viacerými možnosťami výberu musíme najprv vytvoriť rozbaľovací zoznam. Prejdime si jednotlivé postupy.
- Najprv vyberte bunku, v ktorej chcete vytvoriť rozbaľovací zoznam. Ja som vybral Bunka D5 .
- Potom prejdite na Údaje a vyberte kartu Overovanie údajov z pásky.
- Potom z Overovanie údajov vyberte položku Zoznam na stránke Povoľte a zapíšte bunky rozsahu, ktorých údaje chcete pridať do zoznamu v Zdroj oblasť.
- Prípadne môžete kliknúť na malú šípku smerom nahor v Zdroj a vyberte rozsah údajov z pracovného hárka.
- Nakoniec uvidíme rozbaľovací zoznam vytvorený v Bunka D5 .
Podobné čítanie:
- Ako vytvoriť rozbaľovací zoznam v programe Excel (nezávislý a závislý)
- Viacnásobný výber z rozbaľovacieho zoznamu v programe Excel (3 spôsoby)
- Ako vytvoriť závislý rozbaľovací zoznam v programe Excel
- Vytvorenie rozbaľovacieho zoznamu vo viacerých stĺpcoch v programe Excel (3 spôsoby)
KROK 2: Umožnenie rozbaľovacieho zoznamu akceptovať viacnásobný výber pomocou kódu VBA
Rozbaľovací zoznam sme už vytvorili. Teraz je čas pripraviť rozbaľovací zoznam pre viacnásobný výber. Použijem 2 VBA kódy, ktoré umožňujú, aby zoznam akceptoval viacero výberov. Jeden bude akceptovať opakovanie údajov a druhý nebude akceptovať opakovanie údajov.
Prípad 1: Kód VBA pre viacnásobné výbery s opakovaním
V tejto časti ukážem spôsob vytvorenia rozbaľovacieho zoznamu s viacerými možnosťami výberu, ktorý bude obsahovať opakovanie údajov.
Prejdime si jednotlivé postupy.
- Najprv stlačte ALT + F11 otvoriť VBA okno.
- Potom vyberte Projekt Explorer . Tiež, dvojité - kliknite na na hárku, na ktorom sa má úloha vykonať.
- Súčasne sa Kód otvorí sa okno.
- Potom do tohto okna napíšte nasledujúci kód.
Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String On Error GoTo Exitsub If Target.Address = "$D$5" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.Value Application.Undo Oldvalue = Target.Value If Oldvalue = "" ThenTarget.Value = Newvalue Else Target.Value = Oldvalue & ", " & Newvalue End If End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub
Poznámka: V časti kódu ( Ak Target.Address = "$D$5" Potom ) namiesto odkazu na bunku $D$5, napíšete odkaz na bunku, v ktorej ste vytvorili rozbaľovací zoznam. - Nakoniec sa vráťte na pracovný hárok a budeme môcť vybrať viacero prvkov v rozbaľovacom zozname s opakovaním toho istého prvku.
Prípad 2: Kód VBA pre viacnásobný výber bez opakovania
V tejto časti ukážem spôsob, ako vytvoriť rozbaľovací zoznam s viacerými možnosťami výberu, ktorý nebude vyžadovať opakovanie údajov.
Prejdime si jednotlivé postupy.
- Najprv stlačte ALT + F11 otvoriť VBA okno.
- Potom vyberte Projekt Explorer . Tiež, dvojnásobok - kliknite na na hárku, na ktorom sa má úloha vykonať.
- Súčasne sa Kód zobrazí sa okno.
- Potom do tohto okna zadajte nasledujúci kód.
Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String Application.EnableEvents = True On Error GoTo Exitsub If Target.Address = "$D$5" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.Value Application.Undo Oldvalue =Target.Value If Oldvalue = "" Then Target.Value = Newvalue Else If InStr(1, Oldvalue, Newvalue) = 0 Then Target.Value = Oldvalue & ", " & Newvalue Else: Target.Value = Oldvalue End If End If End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub
Poznámka: V časti kódu ( Ak Target.Address = "$D$5" Potom ) namiesto odkazu na bunku $D$5, napíšete odkaz na bunku, v ktorej ste vytvorili rozbaľovací zoznam. - Nakoniec sa vráťte na pracovný hárok a budeme môcť vybrať viacero prvkov v rozbaľovacom zozname bez opakovania toho istého prvku.
Záver
Pomocou tejto metódy môžete v programe Excel vytvoriť rozbaľovací zoznam s viacerými možnosťami výberu. Máte nejaké otázky? Neváhajte a dajte nám vedieť v časti s komentármi. Navštívte náš Webová lokalita ExcelWIKI pre viac článkov týkajúcich sa Excel .