Excel - Skapa nedrullningslista på vissa celler

Problem

Jag ville skapa en nedrullningslista från data i Sheet2. Jag har provat följande koder men resultatet verkar vara felaktigt. I stället för uppgifterna i Ark2 som anges i rullgardinsmenyn, innehåller listrutan data från Sheet1 (vilket är mitt destinationsblad).

Jag skulle också vilja ha nedrullningslistan på vissa celler där jag har information om cellerna före, dvs nedrullningslistan ska finnas i kolumn F i Sheet1 där det finns information om kolumn E av ark1 och upprepa till slutet av listan.

Härmed bifogas filen jag jobbar med här.

Lösning

Du skapar en valideringslista från en annan arbetsgrupp ge ett intervallnamn till den valideringslistan (i ark2)

och använd det som formeln

Jag försökte ändra ditt makro utan att störa förutom att ändra en eller två linjer

Jag har angivit serienamn som "rangename". Du kan ändra det i makroet

Om nödvändigt tweak det lite mer.

 Sub Dropdown () Dim x Så länge, y Så länge Dim objCell Som Range Dim objDataRangeStart Som Range Dim ObjDataRangeEnd Som Range Dim Rangename As String '>> Ange raden för Giltig Dataset wsSourceList = Ark ("Sheet2") Ange wsDestList = Ark ("Sheet1") Ställ objDataRangeStart = wsSourceList.Cells (1, 2) 'Startintervall för listrutor listor Ange objDataRangeEnd = wsSourceList.Cells (6, 2)' Slutintervall för listrutan listrutor MsgBox objDataRangeStart MsgBox objDataRangeEnd '==== ========================================================================================================================================== ====== '>> Ange validering på obligatorisk cell' Ange objCell = wsDestList.Cells (8, 4) 'Plats för dropdownlistan' MsgBox objCell x = 4 y = 6 Ange objCell = wsDestList.Cells (x, y) 'Placering av listrutan Med objCell.Validation .Delete' .Add Typ: = xlValidateList, AlertStyle: = xlValidAlertStop, Operator: = xlBetween, Formula1: = "=" & objDataRangeStart.Address & ":" & objDataRangeEnd. Adress '= ====================================== .Add Typ: = xlValidateList, AlertStyle : = xlValidAlertStop, Operator: = _ xlBetween, Formula1: = "= rangename" '================================= =============================================================================================================================================== Var god välj ett värde från listan tillgänglig i den valda cellen. " .ShowError = Sann ände med x = x + 1 'y = y + 1 Loop till x = 51 Slut Del 

Tack till venkat1926 för detta tips.

Tidigare Artikel Nästa Artikel

Bästa Tipsen