Excel - Luo alasvetovalikko tietyissä soluissa

Ongelma

Halusin luoda pudotusluettelon Sheet2: n tiedoista. Olen kokeillut seuraavia koodeja, mutta tulos näyttää olevan virheellinen. Pudotusluettelossa lueteltujen tietojen sijaan pudotusvalikossa oli tiedot Sheet1: stä (joka on minun kohdesivuni).

Haluaisin myös, että pudotusvalikko tietyistä soluista, joissa minulla on tietoa soluista, eli pudotusvalikko pitäisi olla taulukon 1 sarakkeessa F, jossa on tietoja taulukon 1 sarakkeesta E ja toista loppuun loppuun asti. lista.

Tähän liitetään tiedosto, jota työskentelen täällä.

Ratkaisu

Luodat validointiluettelon toisesta työpisteestä, jossa on kyseisen validointiluettelon alueen nimi (taulukossa 2)

ja käytä sitä kaavana

Yritin muokata makroasi häiritsemättä paitsi yhden tai kahden rivin muuttamisen

Olen antanut alueen nimen "rangename". voit muuttaa sitä makrossa

Tarvittaessa näytä sitä hieman enemmän.

 Sub Dropdown () Dim x As Long, y As Long Dim objektiivi Asetusalue Dim objDataRangeStart As Range Dim objDataRangeEnd As Range Alue Range String '>> Aseta alue valituille tiedoille wsSourceList = Levyt ("Sheet2") Aseta wsDestList = Sheets ("Sheet1") Aseta objDataRangeStart = wsSourceList.Cells (1, 2) 'Aloitusalue pudotusluettelon merkinnöille Aseta objDataRangeEnd = wsSourceList.Cells (6, 2)' Loppurivin pudotusvalikosta MsgBox objDataRangeStart MsgBox objDataRangeEnd '==== ============= Työarkkien kanssa ("Sheet2") Alue (objDataRangeStart, objdatarangaeend) .Name = "rangename" Lopeta "=============== ====== '>> Validation asetettu pakolliseen soluun' Set objCell = wsDestList.Cells (8, 4) 'avattavan luettelon sijainti' MsgBox objCell x = 4 y = 6 Do Set objCell = wsDestList.Cells (x, y) 'Avattavan luettelon sijainti objCell.Validation .Delete' .Add Type: = xlValidateList, AlertStyle: = xlValidAlertStop, Operator: = xlBetween, Formula1: = "=" & objDataRangeStart.Address & ":" & objDataRangeEnd. Osoite '= ========================================== .Lisätyyppi: = xlValidateList, AlertStyle : = xlValidAlertStop, operaattori: = _ xlBetween, kaava1: = "= alueenimi" '================================ ================================ .IgnoreBlank = True .InCellDropdown = True .ErrorTitle = "Varoitus" .ErrorMessage = " Valitse arvo valitun solun käytettävissä olevasta luettelosta. " .ShowError = True End, jossa x = x + 1 'y = y + 1 silmukka, kunnes x = 51 loppuun 

Kiitos venkat1926 tästä vinkistä.

Edellinen Artikkeli Seuraava Artikkeli

Top Vinkkejä