Note: The other languages of the website are Google-translated. Back to English

 Kako ustvariti spustni seznam, a prikazati različne vrednosti v Excelu?

V Excelovem delovnem listu lahko hitro ustvarimo spustni seznam s funkcijo preverjanja podatkov, vendar, ali ste že kdaj poskusili prikazati drugačno vrednost, ko kliknete spustni seznam? Na primer, v stolpcu A in stolpcu B imam naslednja dva podatka v stolpcu. Zdaj moram ustvariti spustni seznam z vrednostmi v stolpcu Ime, toda, ko na ustvarjenem spustnem seznamu izberem ime, ustrezen vrednost v stolpcu Število je prikazana, kot je prikazano na sliki spodaj. Ta članek bo predstavil podrobnosti za rešitev te naloge.

doc spustni meni različne vrednosti 1

Ustvari spustni seznam, vendar v celici spustnega seznama prikaži drugačno vrednost


Ustvari spustni seznam, vendar v celici spustnega seznama prikaži drugačno vrednost

Če želite dokončati to nalogo, sledite naslednjim korakom:

1. Na spustnem seznamu ustvarite ime obsega za vrednosti celic, ki jih želite uporabiti, v tem primeru bom spustni seznam imena vnesel v ime Box, nato pritisnite Vnesite tipko, glej posnetek zaslona:

doc spustni meni različne vrednosti 2

2. Nato izberite celice, kamor želite vstaviti spustni seznam, in kliknite datum > Preverjanje podatkov > Preverjanje podatkov, glej posnetek zaslona:

doc spustni meni različne vrednosti 3

3. v Preverjanje podatkov v pogovornem oknu pod Nastavitve izberite jeziček Seznam Iz Dovoli in nato kliknite doc spustni meni različne vrednosti 5 , da izberete seznam imen, ki ga želite uporabiti kot spustne vrednosti v vir besedilno polje. Oglejte si posnetek zaslona:

doc spustni meni različne vrednosti 4

4. Po vstavitvi spustnega seznama z desno miškino tipko kliknite zavihek aktivnega lista in izberite Ogled kode v priročnem meniju in v odprtem Microsoft Visual Basic za aplikacije okno, kopirajte in prilepite naslednjo kodo v prazen modul:

Koda VBA: Prikažite drugačno vrednost s spustnega seznama:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    selectedNa = Target.Value
    If Target.Column = 5 Then
        selectedNum = Application.VLookup(selectedNa, ActiveSheet.Range("dropdown"), 2, False)
        If Not IsError(selectedNum) Then
            Target.Value = selectedNum
        End If
    End If
End Sub

doc spustni meni različne vrednosti 6

Opombe: V zgornji kodi številka 5 v Če je ciljni stolpec = 5, potem skript je številka stolpca, na kateri je spustni seznam,spustni" v tem selectedNum = Application.VLookup (selectedNa, ActiveSheet.Range ("spustni meni"), 2, False) koda je ime obsega, ki ste ga ustvarili v koraku 1. Lahko jih spremenite v želeno.

5. Nato shranite in zaprite to kodo. Ko izberete element s spustnega seznama, se v isti celici prikaže relativno drugačna vrednost, glejte posnetek zaslona:

doc spustni meni različne vrednosti 7


Predstavitev: ustvarite spustni seznam, vendar v Excelu prikažite različne vrednosti

Kutools za Excel: z več kot 300 priročnimi dodatki za Excel, brezplačno preizkusite brez omejitev v 30 dneh. Prenesite in brezplačno preskusite zdaj!

 


Najboljša orodja za pisarniško produktivnost

Kutools za Excel rešuje večino vaših težav in poveča vašo produktivnost za 80%

  • Ponovna uporaba: Hitro vstavite zapletene formule, grafikoni in vse, kar ste že uporabljali; Šifriraj celice z geslom; Ustvari poštni seznam in pošiljanje e-pošte ...
  • Vrstica Super Formula (enostavno urejanje več vrstic besedila in formule); Bralna postavitev (enostavno branje in urejanje velikega števila celic); Prilepite v filtrirani obseg...
  • Združi celice / vrstice / stolpce brez izgube podatkov; Vsebina razdeljenih celic; Združi podvojene vrstice / stolpce... prepreči podvojene celice; Primerjaj obsege...
  • Izberite Duplicate ali Unique Vrstice; Izberite prazne vrstice (vse celice so prazne); Super Find in Fuzzy Find v mnogih delovnih zvezkih; Naključna izbira ...
  • Natančna kopija Več celic brez spreminjanja sklica formule; Samodejno ustvarjanje referenc na več listov; Vstavi oznake, Potrditvena polja in še več ...
  • Izvleček besedila, Dodaj besedilo, Odstrani po položaju, Odstrani presledek; Ustvari in natisni vmesne seštevke strani Pretvarjanje med vsebino celic in komentarji...
  • Super filter (shranite in uporabite sheme filtrov za druge liste); Napredno razvrščanje glede na mesec / teden / dan, pogostost in drugo; Poseben filter s krepko, ležeče ...
  • Združite delovne zvezke in delovne liste; Spoji tabele na podlagi ključnih stolpcev; Razdelite podatke na več listov; Paketna pretvorba xls, xlsx in PDF...
  • Več kot 300 zmogljivih funkcij. Podpira Office / Excel 2007-2021 in 365. Podpira vse jezike. Enostavna uvedba v vašem podjetju ali organizaciji. 30-dnevna brezplačna preizkusna različica vseh funkcij. 60-dnevna garancija vračila denarja.
zavihek kte 201905

Kartica Office prinaša vmesnik z zavihki v Office in poenostavi vaše delo

  • Omogočite urejanje in branje z zavihki v Wordu, Excelu, PowerPointu, Publisher, Access, Visio in Project.
  • Odprite in ustvarite več dokumentov v novih zavihkih istega okna in ne v novih oknih.
  • Poveča vašo produktivnost za 50%in vsak dan zmanjša na stotine klikov miške za vas!
dno pisarniške mize

 

Komentarji (42)
Ocene še ni. Bodite prvi in ​​ocenite!
Ta komentar je moderator na spletnem mestu minimiziral
Ali je to mogoče storiti na različnih listih? Mislim, na listu 1 spustni meni in na listu 2 obseg. Kako moram to kodirati? Hvala vnaprej. Tina.
Ta komentar je moderator na spletnem mestu minimiziral
Kaj pa, če želim narediti več kot en spustni meni, ki vrne različne vrednosti na istem delovnem listu? Ali mi lahko pokažete primer kodiranja za dva ali več?
Ta komentar je moderator na spletnem mestu minimiziral
lee ann

Če samo kopirate in prilepite kodo iz If v EndIf ter spremenite stolpec # in tabelo, bi moralo delovati:


Sub Worksheet_Change(ByVal Target As Range)
izbranaNa = Target.Value
Če je ciljni stolpec = 5, potem
selectedNum = Application.VLookup (selectedNa, ActiveSheet.Range ("spustni meni"), 2, False)
Če ne IsError(selectedNum) Potem
Target.Value = izbranoNum
Konec Če
Konec Če
Če je ciljni stolpec = 9, potem
selectedNum = Application.VLookup(selectedNa, ActiveSheet.Range("dropdown1"), 2, False)
Če ne IsError(selectedNum) Potem
Target.Value = izbranoNum
Konec Če
Konec Če
End Sub

Ne pravim, da je to pravilen način, vendar je delovalo na moji testni različici. Uporabljam Excel 2013
Ta komentar je moderator na spletnem mestu minimiziral
Pravkar poskusil. In uspelo je!! Hvala vam.
Ta komentar je moderator na spletnem mestu minimiziral
Živjo, pomoč, ne deluje, ali lahko tukaj prilepite vso kodo za 2 stolpca?
Ta komentar je moderator na spletnem mestu minimiziral
Tony: Pravilno, vendar je naslednji korak izogibanje spodbujanju: a) kršitev načela DRY (in s tem povečanih: a.1) možnosti napak in stroškov za njihovo odpravo ter a.2) stroškov morebitnih prihodnjih sprememb/izboljšav) z ne spodbujanje programiranja "Copy-Paste" s prikazovanjem, kako ga je mogoče "preoblikovati", da se zmanjša podvojena koda, in b) trdo kodirane literalne ("magično" "število" / "niz") konstante z deklaracijo in uporabo imenovanih konstant, ki so veliko težje napačno vtipkati, ne da bi sprožili napako prevajalnika. Edine stvari, ki se med dvema kopirano prilepljenima blokoma kode razlikujejo, so številke stolpcev in imena obsegov, tako da se vse drugo, kolikor je le mogoče, ne sme podvojiti, zato bi morala biti koda npr.

' -- OPOMBA: deklarirajte "EmptyString" v modulu globalnih deklaracij.
Javna konst EmptyString kot niz = ""

' -- Stolpci #s. OPOMBA: V praksi bi bil npr. "Col5Header" npr. "ProductID", "Col9Header" pa bi bil npr. "SalesID".
Private Const Col5HeaderColumnNumber Kot celo število = 5
Private Const Col9HeaderColumnNumber Kot celo število = 9

' -- Imena obsegov stolpcev' spustnih seznamov
Zasebna konst Col5HeaderDropDownRangeName kot niz = "col5HeaderDropDownRangeName"
Zasebna konst Col9HeaderDropDownRangeName kot niz = "col9HeaderDropDownRangeName"

Subworksheet_Change _
( _
ByVal Target As Range _
)

' -- ZAČETEK Za ustrezne =stolpce vnesite ID za opis, izbran s spustnih seznamov.
Zatemnite dropDownListRangeName kot niz
dropDownListRangeName = EmptyString
Izberite Case Target.Column
Case Col5HeaderColumnNumber
dropDownListRangeName = Col5HeaderDropDownRangeName
Case Col9HeaderColumnNumber
dropDownListRangeName = Col9HeaderDropDownRangeName
End Select ' -- Case Target.Column
If (dropDownListRangeName <> EmptyString) Then
Zatemni izbraniId kot niz
selectedId = Application.VLookup(selectedNa, ActiveSheet.Range(dropDownListRangeName), 2, False)
If Not IsError(selectedId) Potem
Target.Value = selectedId
End If ' -- Not IsError(selectedId)
End If ' -- (dropDownListRangeName <> EmptyString)
-- KONEC Za veljavne =stolpce vnesite ID za opis, izbran s spustnih seznamov.

End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Nič bolj frustrirajočega kot vtipkati podrobno vprašanje, ki ga samo raznese. Če vnesete napačno 6-mestno kodo, da preverite svojega človeka, izbriše objavljeno sporočilo. Morda bi želel to popraviti. Zdaj je moj komentar naslednji: Poskušal sem narediti popolnoma isto stvar, ki ste jo pokazali v videoposnetku in pisnih navodilih, in vse, kar dobim, je, ko izberem ime na seznamu, je ime in ne številka. Prav tako, kako to sploh deluje, saj bi moralo preverjanje veljavnosti podatkov omejiti izbire samo na tisto, kar je na seznamu. Kako to zavaja sistem? V preteklosti sem vedno moral dodeliti kodo vba gumbu ali bližnjici, kako se ta koda aktivira? Kako testirate, da se prepričate, da deluje?
Ta komentar je moderator na spletnem mestu minimiziral
Kako formula deluje, ko želite podatke dodati na ločen list v delovni zvezek? Podatke želim skriti.
Ta komentar je moderator na spletnem mestu minimiziral
Spremeni se tukaj brat!
selectedNum = Application.VLookup(selectedNa, Worksheets("YourSheetName").Range("dropdown"), 2, False)
Ta komentar je moderator na spletnem mestu minimiziral
"YourSheetName" se sklicuje na list, ki vsebuje obseg podatkov, ali na list, kjer želim uporabiti spustni seznam?
Ta komentar je moderator na spletnem mestu minimiziral
Kako deluje formula, če želite podatke navesti na ločenem listu/zavihku v delovnem zvezku?
Ta komentar je moderator na spletnem mestu minimiziral
to ne deluje v trenutnih različicah excel- zastarele. Potrjevanje podatkov nato seznam ni več prikazan v vba, saj je Excelov predmet že večkrat poskusil in se ne prikaže.
Ta komentar je moderator na spletnem mestu minimiziral
V tem primeru, kaj, če želite, da pogleda vrednost v vsaki celici v 5, vendar da vrednost v sosednji celici v 6
Ta komentar je moderator na spletnem mestu minimiziral
Kako bi se morala koda spremeniti, če bi želel v E1 ustvariti referenco/povezavo do vira spustnega seznama na podlagi izbrane vrednosti?
Prednost bi bila, da bi se v primeru spremembe spustnega vira (npr. "Henrik" => "Hendrik" sprememba samodejno odrazila v E1.
Ta komentar je moderator na spletnem mestu minimiziral
Ali kdo ve, kako to narediti v google preglednicah?
Ta komentar je moderator na spletnem mestu minimiziral
želim izbrati več možnosti s spustnega seznama.
rezultat, kot je ta: AA1001,BB1002
ali je možno?
Ta komentar je moderator na spletnem mestu minimiziral
Ste našli rešitev?
Ta komentar je moderator na spletnem mestu minimiziral
Si los datos de la seznam están en otra hoja, cuál sería el código? Gracias.
Ta komentar je moderator na spletnem mestu minimiziral
cómo buscar un valor hacia la izquierda
Ta komentar je moderator na spletnem mestu minimiziral
Zasebni poddelovni list_Spremeni (ByVal Target As Range)
izbranaNa = Target.Value
Če je ciljni stolpec = 5, potem

Listi("Nombre de la hoja en donde esta la lista").Aktiviraj
selectedNum = Application.VLookup (selectedNa, ActiveSheet.Range ("spustni meni"), 2, False)
Listi ("Nombre de la hoja en donde estas trabajando"). Aktivirajte
Če ne IsError(selectedNum) Potem
Target.Value = izbranoNum
Konec Če
Konec Če
End Sub
Ta komentar je moderator na spletnem mestu minimiziral
Nekdo ve, kako iskati vrednost od desne proti levi
Ta komentar je moderator na spletnem mestu minimiziral
Isti spustni meni moram uporabiti v več kot enem stolpcu, kakšna bi bila koda?
Ta komentar je moderator na spletnem mestu minimiziral
Živjo!
To je res uporabno! Hvala vam!
Tečem v situaciji, ko se celica ne posodablja samodejno ali pri uporabi funkcije osveževanja. Moram klikniti drugo celico in nato klikniti nazaj na celico v delu, da prikaže vrednost.
Trenutno delam v programu Office Standard 2019. Ali kdo ve, ali je ta težava povezana z različico v excelu, ki jo uporabljam?
Ta komentar je moderator na spletnem mestu minimiziral
Hi,
Koda je dobro delovala, če definiramo seznam in ustvarimo spustni meni na istem listu.
Toda kako lahko dosežemo definiranje seznama vrednosti in kod na enem listu in spustnega menija, ustvarjenega na drugem listu?
Ta ista koda ne deluje, kot je prikazana, in napaka v tej vrstici ("selectedNum = Application.VLookup(selectedNa, ActiveSheet.Range("dropdown"), 2, False)").
Prav tako imam zahtevo, kot je, če imam na enem listu definiranih več seznamov z ID-jem in imeni ter več spustnih menijev na drugem listu, kjer je ena spustna vrednost odvisna od izbrane vrednosti v drugem spustnem meniju.

Upam, da ste razumeli moje vprašanje.

Prosim pomagajte mi pri reševanju te težave.
Ta komentar je moderator na spletnem mestu minimiziral
To mi je zelo pomagalo, hvala. Ker je bila moja tabela na drugem listu kot moje polje s seznamom, sem dodal nekaj vrstic kode, da to dosežem in tudi da zaslon ne utripa.

Application.ScreenUpdating = Napačno
Sheets("SheetWithTableOnIt").Aktivirajte

Sheets("SheetWithDropDownListOnIt").Aktiviraj
Application.ScreenUpdating = Res
Ta komentar je moderator na spletnem mestu minimiziral
kam točno si dodal te kode?
Ta komentar je moderator na spletnem mestu minimiziral
Ko poskušam uporabiti kodo, dobim napako pri prevajanju: napaka v sintaksi v vrstici »Če Trarget.Column = 6 Potem«? Kakšna ideja, zakaj?
Ta komentar je moderator na spletnem mestu minimiziral
Deluje, vendar ko zaprete datoteko in jo znova odprete, ne deluje...ne more se shraniti kot .xls samo kot .xlsm ali obstaja kakšna rešitev za to? Hvala
Ta komentar je moderator na spletnem mestu minimiziral
Pozdravljeni, Marko, po kopiranju in lepljenju kode v delovni zvezek, ko shranite datoteko, jo shranite kot format delovnega zvezka z omogočenimi makri v Excelu, poskusite, hvala!
Tu še ni objavljenih komentarjev
Obremenitev Več
Pustite vaše komentarje
Objava kot gost
×
Ocenite to objavo:
0   Znaki
Predlagane lokacije

Sledi nam

Copyright © 2009 - www.extendoffice.com. | Vse pravice pridržane. Poganja ga ExtendOffice. | Kazalo
Microsoft in logotip Office sta blagovni znamki ali registrirani blagovni znamki družbe Microsoft Corporation v ZDA in / ali drugih državah.
Zaščiteno s Sectigo SSL