Excel - Loo teatud lahtrite rippmenüü

Probleem

Tahtsin luua lehel2 olevate andmete põhjal rippmenüü. Olen proovinud järgmisi koode, kuid tulemus tundub olevat vale. Rippmenüüst loetletud lehel 2 toodud andmete asemel sisaldas rippmenüü andmeid lehest 1 (mis on minu sihtleht).

Samuti tahaksin, et rippmenüü oleks teatud lahtrites, kus mul on enne lahtrite kohta teavet, st rippmenüü peaks olema lehe 1 veerus F, kui on olemas teave lehe 1 veeru E kohta ja korrata kuni lehe lõpuni nimekiri.

Sellega on lisatud fail, mida ma siin töötan.

Lahendus

Te loote valideerimise nimekirja teisest töölehest, mis annab selle valideerimisnimekirja vahemikunime (lehel 2)

ja kasutage seda valemina

Üritasin muuta oma makrot häirimata, välja arvatud ühe või kahe rea muutmine

Olen andnud vahemiku nime "rangename". saate seda makro abil muuta

Vajadusel keerake seda veidi rohkem.

 Sub Dropdown () Dim x As Long, y Nagu Long Dim objektiivi vahemik Dim objDataRangeStart As Range Dim objDataRangeEnd kui vahemik Dim rangename kui stringid >> >> Seadistage vahemik kehtivatele andmetele wsSourceList = Lehed ("Sheet2") Set wsDestList = Lehed ("Sheet1") Määra objDataRangeStart = wsSourceList.Cells (1, 2) 'Alamvalik rippmenüü kirjete jaoks Set objDataRangeEnd = wsSourceList.Cells (6, 2)' Lõppvalik rippmenüü kirjete jaoks MsgBox objDataRangeStart MsgBox objDataRangeEnd '==== ============= Töölehtedega ("Sheet2") vahemik (objDataRangeStart, objdatarangaeend) .Name = "rangename" Lõpeta '=============== ====== '>> Valideerimise seadistamine nõutud lahtrisse' Set objCell = wsDestList.Cells (8, 4) 'Rippmenüü asukoht' MsgBox objCell x = 4 y = 6 Kas seada objCell = wsDestList.Cells (x, y) 'rippmenüü asukoht objCell.Validation .Delete' .Lisa tüüp: = xlValidateList, AlertStyle: = xlValidAlertStop, Operaator: = xlBetween, Vorm1: = "=" & objDataRangeStart.Address & ":" & objDataRangeEnd. Aadress '= ========================================== .Lisa tüüp: = xlValidateList, AlertStyle : = xlValidAlertStop, Operaator: = _ xlBetween, Vorm1: = "= vahemikunimi" '================================ ================================ .IgnoreBlank = True .InCellDropdown = Tõsi .ErrorTitle = "Hoiatus" .ErrorMessage = " Palun valige valitud lahtris olevast loendist väärtus. " .ShowError = Tõeline lõpp x = x + 1 'y = y + 1 silmus kuni x = 51 Lõpeta alam 

Tänu venkat1926-le selle näpunäite eest.

Eelmine Artikkel Järgmine Artikkel

Top Näpunäited