Přejít k hlavnímu obsahu

Jak zobrazit první položku v rozevíracím seznamu namísto prázdného?

Autor: Xiaoyang Naposledy změněno: 2016-07-28
výchozí rozevírací seznam dokumentů na začátek 1

Rozevírací seznam v listu nám může pomoci usnadnit zadávání dat, stačí jen vybrat položky, aniž byste je museli psát jeden po druhém. Ale někdy, když kliknete na rozevírací seznam, nejprve přeskočí na prázdné položky namísto první datové položky, jak ukazuje následující snímek obrazovky, což může být způsobeno odstraněním zdrojových dat na konci seznamu. Může být nepříjemné, že musíte posunout zpět na začátek dlouhého seznamu pro každou prázdnou buňku pro ověření dat. V tomto článku budu hovořit o tom, jak vždy zobrazit první položku v rozevíracím seznamu.

Zobrazit první položku v rozevíracím seznamu místo prázdné pomocí funkce ověření dat

Automaticky zobrazit první položku v rozevíracím seznamu namísto prázdné pomocí kódu VBA


šipka modrá pravá bublina Zobrazit první položku v rozevíracím seznamu místo prázdné pomocí funkce ověření dat

Ve skutečnosti k dosažení této úlohy stačí použít konkrétní vzorec při vytváření rozevíracího seznamu, postupujte takto:

1. Vyberte buňky, do kterých chcete vložit rozevírací seznam, a klikněte Data > Ověření dat > Ověření dat, viz screenshot:

výchozí rozevírací seznam dokumentů na začátek 2

2. Ve vyskočené Ověření dat v dialogovém okně pod Nastavení kartu, vyberte Seznam z povolit a poté zadejte tento vzorec: = OFFSET (List3! $ A $ 1,0,0, COUNTA (List3! $ A: $ A) -1,1) do Zdroj textové pole, viz screenshot:

Poznámka: V tomto vzorci Sheet3 je list obsahuje seznam zdrojových dat a A1 je první hodnota buňky v seznamu.

výchozí rozevírací seznam dokumentů na začátek 3

3. Pak klikněte na tlačítko OK Tlačítko, nyní, když kliknete na buňky rozevíracího seznamu, první datová položka se vždy zobrazí nahoře, zda jsou na konci zdrojových dat odstraněny hodnoty buněk, viz screenshot:

výchozí rozevírací seznam dokumentů na začátek 4


šipka modrá pravá bublina Automaticky zobrazit první položku v rozevíracím seznamu namísto prázdné pomocí kódu VBA

Tady mohu také představit kód VBA, který vám pomůže automaticky zobrazit první položku v rozevíracím seznamu, když kliknete na buňky pro ověření dat.

1. Po vložení rozevíracího seznamu vyberte kartu listu, která obsahuje rozevírací seznam, a vyberte kliknutím pravým tlačítkem Zobrazit kód z kontextového menu přejděte do Microsoft Visual Basic pro aplikace okno a poté zkopírujte a vložte následující kód do modulu:

Kód VBA: Automaticky zobrazit první datovou položku v rozevíracím seznamu:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby Extendoffice 20160725
    Dim xFormula As String
    On Error GoTo Out:
    xFormula = Target.Cells(1).Validation.Formula1
    If Left(xFormula, 1) = "=" Then
        Target.Cells(1) = Range(Mid(xFormula, 1)).Cells(1).Value
    End If
Out:
End Sub

výchozí rozevírací seznam dokumentů na začátek 5

2. Poté uložte a zavřete okno kódu a nyní, když kliknete na buňku rozevíracího seznamu, zobrazí se najednou první datová položka.

Nejlepší nástroje pro produktivitu v kanceláři

🤖 Kutools AI asistent: Revoluční analýza dat založená na: Inteligentní provedení   |  Generovat kód  |  Vytvořte vlastní vzorce  |  Analyzujte data a generujte grafy  |  Vyvolejte funkce Kutools...
Populární funkce: Najít, zvýraznit nebo identifikovat duplikáty   |  Odstranit prázdné řádky   |  Kombinujte sloupce nebo buňky bez ztráty dat   |   Kolo bez vzorce ...
Super vyhledávání: Více kritérií VLookup    VLookup s více hodnotami  |   VLookup na více listech   |   Fuzzy vyhledávání ....
Pokročilý rozevírací seznam: Rychle vytvořte rozevírací seznam   |  Závislý rozbalovací seznam   |  Vícenásobný výběr rozevíracího seznamu ....
Správce sloupců: Přidejte konkrétní počet sloupců  |  Přesunout sloupce  |  Přepnout stav viditelnosti skrytých sloupců  |  Porovnejte rozsahy a sloupce ...
Doporučené funkce: Zaměření mřížky   |  Návrhové zobrazení   |   Velký Formula Bar    Správce sešitů a listů   |  Knihovna zdrojů (Automatický text)   |  Výběr data   |  Zkombinujte pracovní listy   |  Šifrovat/dešifrovat buňky    Odesílat e-maily podle seznamu   |  Super filtr   |   Speciální filtr (filtr tučné/kurzíva/přeškrtnuté...) ...
Top 15 sad nástrojů12 Text Tools (doplnit text, Odebrat znaky, ...)   |   50+ Graf Typ nemovitosti (Ganttův diagram, ...)   |   40+ Praktické Vzorce (Vypočítejte věk na základě narozenin, ...)   |   19 Vložení Tools (Vložte QR kód, Vložit obrázek z cesty, ...)   |   12 Konverze Tools (Čísla na slova, Přepočet měny, ...)   |   7 Sloučit a rozdělit Tools (Pokročilé kombinování řádků, Rozdělit buňky, ...)   |   ... a více

Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času.  Kliknutím sem získáte funkci, kterou nejvíce potřebujete...

Popis


Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
Comments (10)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
=OFFSET(Sheet3!$A$1,0,0,COUNTA(Sheet3!$A:$A)+2-1,1) I added +2 to the equation and that worked for me.
This comment was minimized by the moderator on the site
For the VDA code, how can I have only a certain cell range show the first item in the drop down list? Thank you in advance.
This comment was minimized by the moderator on the site
Hi, Akrupa,To solve your problem, maybe the following VBA code can help you:

<div data-tag="code">Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Updateby Extendoffice 20211206
Dim xFormula As String
Dim xRg As Range
Dim xStr As String
Dim xIndex As Integer
xIndex = 2 'Here indicates the cell number of the original data,for example,the original data is A1:A10, to display the A2 cell value, please write 2 here.
On Error GoTo Out:
xFormula = Target.Cells(1).Validation.Formula1
If Left(xFormula, 1) = "=" Then
If Target.Value <> "" Then Exit Sub
xStr = Mid(xFormula, 2)
Set xRg = Application.Range(xStr)
Target.Cells(1) = xRg.Cells(xIndex).Value
End If
Out:
End Sub
Please try, hope it can help you!
This comment was minimized by the moderator on the site
Better but not quite. Using the =OFFSET(Sheet3!$A$1,0,0,COUNTA(Sheet3!$A:$A)-1,1) method eliminates the blanks but still starts you at the bottom of the very long list. I want it to start at the top of the list.
This comment was minimized by the moderator on the site
Once again, you save the day! Thanks!
This comment was minimized by the moderator on the site
Doesn't work for me. I keep getting an error message that says, "There's a problem with this formula. Not trying to type a formula? When the first character is an equal (+) or minus (-) sign, Exel thinks it's a formula.... To get around this, type an apostrophe (') first..."
There are no comments posted here yet
Load More
Leave your comments
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations