Kuinka tehdä useita valintoja pudotusluettelosta Excelissä (3 tapaa) -

  • Jaa Tämä
Hugh West

Olosuhteista riippuen saatat joutua valitsemaan useita arvoja pudotusluettelossa. Tässä opetusohjelmassa näytämme, miten voit tehdä useita valintoja pudotusluettelossa. Tässä istunnossa käytämme Excel 2019 -ohjelmaa, voit vapaasti käyttää haluamaasi versiota.

Ennen istuntoon sukeltamista tutustutaan esimerkkien pohjana olevaan tietokokonaisuuteen.

Tässä meillä on useita paperitarvike-elementtejä, joiden avulla luomme pudotusluettelon ja valitsemme sieltä useita kohteita.

Huomaa, että kyseessä on yksinkertainen tietokokonaisuus, jotta asiat pysyisivät yksinkertaisina. Käytännön skenaariossa saatat törmätä paljon suurempaan ja monimutkaisempaan tietokokonaisuuteen.

Käytännön työkirja

Voit ladata harjoituskirjan alla olevasta linkistä.

Tee useita valintoja pudotusluettelosta.xlsm

Monivalinta avattavassa luettelossa

Ensin meidän on luotava pudotusluettelo asemiemme perusteella. Luodaan se nopeasti. Älä epäröi vierailla artikkelissa, joka koskee pudotusluettelon tekemistä.

Vuonna Tietojen validointi Valitse valintaikkunassa LISTA tietotyyppi ja lisää kohteiden solualue.

B4:B11 on alue, jossa on paperitavaran elementit. Nyt löydät avattavan luettelon.

Lue lisää: Excel-pudotusluettelo valinnasta riippuen

1. Valitse useita kohteita (sallii päällekkäisen valinnan).

Tavallisessa pudotusvalikossa valitaan aina yksi kohde. Tässä näet, että olemme valinneet seuraavan kohteen. Kynä luettelosta (kuva alla).

Jos nyt valitsemme toisen kohteen, sanotaan vaikka Kynä

se korvaa edellisen arvon. Vain Kynä pysyy valittuna.

Jos haluamme valita useita kohteita, meidän on käytettävä komentoa VBA koodi. Avaa Microsoft Visual Basic for Applications ikkuna (paina ALT + F11 avataksesi sen).

Kaksoisnapsauta nyt sen työarkin nimeä tai numeroa, jonka pudotusluettelosta haluat valita useita kohteita. Saat näkyviin kyseisen arkin koodiikkunan.

Tässä on koodiikkuna Sheet2 työkirjassamme (meillä on pudotusluettelo tässä arkissa).

Kun koodiikkuna on avattu, lisää sinne seuraava koodi

 Private Sub Worksheet_Change(ByVal Target As Range) Dim Oldvalue As String Dim Newvalue As String On Error GoTo Exitsub If Target.Address = "$D$4" 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.UndoOldvalue = Target.Value If Oldvalue = "" Then Target.Value = Newvalue Else Target.Value = Oldvalue & ", " & Newvalue End If End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub 

Tallenna koodi ja yritä nyt valita arvot pudotusvalikosta.

Valittuaan Kynä , valitsemme toisen kohteen Muistikirja Ja kuten näet, löysimme molemmat kohteet (kuva alla).

Tämän koodin avulla voimme toistaa valinnan. Sanotaan, että jos valitsemme Kynä jälleen,

löydämme kohteen uudelleen valintaruudusta.

Koodi Selitys

Olemme ilmoittaneet kaksi merkkijonoa Vanha arvo ja Newvalue .

Näet, että teimme pudotusluettelon kohdassa D4 solu, siksi kohdeosoitteemme on muotoa D4 . Lisäksi olemme tarkistaneet uudelleen, onko solussa käytössä tietojen validointi vai ei, käyttäen Target.SpecialCells .

Kun arvo on valittu, sammutimme tapahtumat ( Application.EnableEvents = False ), jotta muutokset eivät laukaise tapahtumaa uudelleen. Sitten tallennetaan valittu kohde tiedostoon Newvalue .

Muutoksen peruuttamisen jälkeen olemme asettaneet arvon kohtaan Vanha arvo Tarkista sitten, onko Vanha arvo on tyhjä tai ei ole. Jos tyhjä (tarkoittaa, että vain yksi arvo on valittu), palautetaan arvoksi Newvalue . Muussa tapauksessa ketjutetaan Vanha arvo ja Newvalue .

Ennen päättymistä nollaa tapahtuma, jotta voimme tarvittaessa muuttaa sitä.

Lue lisää: Useita riippuvaisia pudotusluetteloita Excel VBA:ssa

2. Valitse useita kohteita pudotusvalikosta (vain ainutkertainen valinta).

Aiemmassa osassa näimme useita valintoja, joissa toistaminen oli sallittua. Jos et halua sitä, noudata tätä osaa.

Käytämme tätä esittelyä varten erillistä arkkia. Tällä kertaa olemme Sheet3:lla. Kirjoita seuraava koodi tämän arkin koodiikkunaan.

 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$4" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.ValueApplication.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 

Onko mitään eroa aikaisempaan koodiin verrattuna? Katso tarkemmin, niin huomaat pienen eron.

Tässä olemme käyttäneet VBA funktio nimeltään INSTR . INSTR funktio palauttaa merkkijonon merkkijonon ensimmäisen esiintymän sijainnin. Katso lisätietoja tästä INSTR-artikkelista.

Käyttämällä tätä loogista operaatiota, jossa InStr(1, Oldvalue, Newvalue) = 0, olemme tarkistaneet, onko arvot löydetty vai ei. Jos looginen operaatio antaa tulokseksi TRUE (ei löydy aiemmin), se sallii kohteen valitsemisen ja yhdistämisen aiempaan arvoon.

Tallenna koodi ja yritä nyt valita kohde, joka on jo valittu.

Täällä olemme jo valinneet Kynä , jos haluamme valita sen uudelleen, emme voi. Se ei salli päällekkäisiä arvoja.

Lue lisää: Miten luoda pudotusluettelo toisesta Excel-arkista Excelissä?

3. Valitse kohteet uudella rivillä

Tähän mennessä olemme havainneet, että kohteet on erotettu toisistaan pilkulla. Tässä osassa järjestämme valitut kohteet rivinvaihdolla.

Yksinkertaisuuden vuoksi yhdistämme muutaman solun, joissa on D4 Valitse solut, jotka haluat yhdistää, ja napsauta sitten Yhdistä & keskusta alkaen Kohdistus osiossa Etusivu välilehti.

Kenno kasvaa lisää korkeutta.

Katsotaanpa nyt koodia, jolla kohteet erotetaan toisistaan rivinvaihdolla. Käytä seuraavaa koodia.

 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$4" Then If Target.SpecialCells(xlCellTypeAllValidation) Is Nothing Then GoTo Exitsub Else: If Target.Value = "" Then GoTo Exitsub Else Application.EnableEvents = False Newvalue = Target.ValueApplication.Undo Oldvalue = Target.Value If Oldvalue = "" Then Target.Value = Newvalue Else If InStr(1, Oldvalue, Newvalue) = 0 Then Target.Value = Oldvalue & vbNewLine & Newvalue Else: Target.Value = Oldvalue End If End If End If End If Application.EnableEvents = True Exitsub: Application.EnableEvents = True End Sub 

Ainoa ero edelliseen koodiin on se, että tällä kertaa käytimme komentoa vbNewLine välissä OldValue ja NewValue .

vbNewLine antaa uuden rivin kohteiden väliin.

Valitse nyt kohteet.

Valitsemme kohteen Kynä joka näkyy yllä olevassa kuvassa. Valitse nyt toinen elementti.

Huomaat, että nämä kaksi kohdetta ovat eri riveillä.

Tässä meillä on kaksi arvoa, jotka ovat kahdella eri rivillä. Kun valitset toisen arvon, se lisätään toiselle riville. Jokainen arvo on uudella rivillä.

Huomaa, että jos haluat erottaa kohteet toisistaan jollakin muulla erotinmerkillä, käytä sitä lainausmerkkien sisällä tilalle vbNewline .

Päätelmä

Siinä kaikki tältä päivältä. Olemme listanneet useita lähestymistapoja useiden valintojen tekemiseen pudotusvalikossa. Toivottavasti tästä on apua. Voit vapaasti kommentoida, jos jotain tuntuu vaikealta ymmärtää. Kerro meille muista menetelmistä, joita emme ole huomanneet.

Hugh West on erittäin kokenut Excel-kouluttaja ja analyytikko, jolla on yli 10 vuoden kokemus alalta. Hän on koulutukseltaan laskentatoimen ja rahoituksen kandidaatti sekä kauppatieteiden maisteri. Hughilla on intohimo opettamiseen, ja hän on kehittänyt ainutlaatuisen opetusmenetelmän, jota on helppo seurata ja ymmärtää. Hänen asiantuntemuksensa Excelistä on auttanut tuhansia opiskelijoita ja ammattilaisia ​​maailmanlaajuisesti parantamaan taitojaan ja menestymään urallaan. Blogissaan Hugh jakaa tietämyksensä maailman kanssa tarjoamalla ilmaisia ​​Excel-opetusohjelmia ja verkkokoulutusta auttaakseen yksilöitä ja yrityksiä saavuttamaan täyden potentiaalinsa.