Obsah
Až dosud jsme se zabývali jak vytvářet rozevírací seznamy v Excelu. Dnes ukážu jak vytvořit rozevírací seznam s více možnostmi výběru v aplikaci Excel .
Stáhnout cvičebnici
Cvičebnici si můžete stáhnout zde.
Vytvoření rozevíracího seznamu s vícenásobným výběrem.xlsmPostupy krok za krokem pro vytvoření rozevíracího seznamu v aplikaci Excel s více výběry
Zde máme datovou sadu se sloupcem Název knihy který obsahuje několik názvů knih. Naším dnešním cílem je vytvořit na základě tohoto datového souboru rozbalovací seznam, který umožňuje více výběrů. V následující části ukážu postup krok za krokem.
KROK 1: Vytvoření rozevíracího seznamu pomocí ověřování dat
Pro vytvoření rozevíracího seznamu s více výběry musíme nejprve vytvořit rozevírací seznam. Projděme si jednotlivé postupy.
- Nejprve vyberte buňku, ve které chcete vytvořit rozevírací seznam. Já jsem vybral. Buňka D5 .
- Poté přejděte do Data a vyberte možnost Ověřování dat ze stuhy.
- Pak z Ověřování dat vyberte možnost Seznam na adrese Povolit a zapište buňky rozsahu, jejichž data chcete přidat do seznamu v sekci Zdroj: pole.
- Případně můžete kliknout na malou šipku nahoru v okně Zdroj: a vyberte rozsah dat z pracovního listu.
- Nakonec uvidíme rozevírací seznam vytvořený v položce Buňka D5 .
Podobné čtení:
- Jak vytvořit rozevírací seznam v aplikaci Excel (nezávislý a závislý)
- Provedení vícenásobného výběru z rozevíracího seznamu v aplikaci Excel (3 způsoby)
- Jak vytvořit závislý rozevírací seznam v aplikaci Excel
- Vytvoření rozevíracího seznamu ve více sloupcích v aplikaci Excel (3 způsoby)
KROK 2: Povolení rozevíracího seznamu pro vícenásobný výběr pomocí kódu VBA
Rozbalovací seznam jsme již vytvořili. Nyní je čas připravit rozbalovací seznam pro vícenásobný výběr. Použiji 2 VBA kódy, které umožní seznamu přijmout více výběrů. Jeden bude akceptovat opakování údajů a druhý opakování údajů nepřijme.
Případ 1: Kód VBA pro vícenásobné výběry s opakováním
V této části ukážu způsob, jak vytvořit rozevírací seznam s více možnostmi výběru, který bude obsahovat opakující se údaje.
Projděme si jednotlivé postupy.
- Nejprve stiskněte ALT + F11 otevřít VBA okno.
- Pak vyberte Projekt Explorer . Také, double - klikněte na na listu, kde chcete úkol provést.
- Současně se Kód otevře se okno.
- Poté do tohoto okna napište následující 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 části kódu ( Pokud Target.Address = "$D$5" Pak ) místo odkazu na buňku $D$5, napíšete odkaz na buňku, ve které jste vytvořili rozevírací seznam. - Nakonec se vrátíme na pracovní list a budeme moci vybrat více prvků v rozevíracím seznamu s opakováním stejného prvku.
Případ 2: Kód VBA pro vícenásobný výběr bez opakování
V této části ukážu způsob, jak vytvořit rozevírací seznam s více výběry, který nebude vyžadovat opakování údajů.
Projděme si jednotlivé postupy.
- Nejprve stiskněte ALT + F11 otevřít VBA okno.
- Pak vyberte Projekt Explorer . Také, double - klikněte na na listu, kde chcete úkol provést.
- Současně se Kód zobrazí se okno.
- Poté do tohoto okna zadejte následující 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 Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub
Poznámka: V části kódu ( Pokud Target.Address = "$D$5" Pak ) místo odkazu na buňku $D$5, napíšete odkaz na buňku, ve které jste vytvořili rozevírací seznam. - Nakonec se vrátíme na pracovní list a budeme moci vybrat více prvků v rozevíracím seznamu, aniž by se opakoval stejný prvek.
Závěr
Pomocí této metody můžete v aplikaci Excel vytvořit rozevírací seznam s více možnostmi výběru. Máte nějaké dotazy? Neváhejte a dejte nám vědět v sekci komentářů. Navštivte naši stránku. Webové stránky ExcelWIKI pro více článků týkajících se Excel .