Excel - Vytvořit rozevírací seznam na určité buňky

Problém

Chtěl jsem vytvořit rozevírací seznam z dat v List2. Vyzkoušela jsem následující kódy, ale výsledek se zdá být nesprávný. Namísto dat v List2 uvedených v rozevíracím seznamu obsahuje rozevírací seznam data z Listu1 (což je můj cílový list).

Chtěl bych také mít rozevírací seznam na určité buňky, kde mám informace o buňkách dříve, tj. Rozevírací seznam by měl být ve sloupci F listu1, kde jsou informace o sloupci E listu1 a opakovat až do konce seznam.

Zde je připojen soubor, na kterém zde pracuji.

Řešení

Vytvořte validační seznam z ANOTHER WORKSHEET a zadejte název rozsahu pro tento validační seznam (v listu2)

a použít jako vzorec

Pokusil jsem se vaše makro upravit bez rušení kromě změny jednoho nebo dvou řádků

Uvedl jsem název rozsahu jako "rangename". můžete ji změnit v makru

Je-li to nutné, trochu více.

 Sub Dropdown () Dim x jako dlouhý, y jako dlouhý Dim objCell jako rozsah Dim objDataRangeStart jako rozsah Dim objDataRangeEnd jako rozsah Dim rangename jako řetězec '>> Nastavit rozsah pro platnou sadu dat wsSourceList = listy ("Sheet2") Nastavit wsDestList = listy ("List1") Nastavit objDataRangeStart = wsSourceList.Cells (1, 2) 'Počáteční rozsah pro položky rozevíracího seznamu Nastavit objDataRangeEnd = wsSourceList.Cells (6, 2)' Koncový rozsah pro položky rozevíracího seznamu MsgBox objDataRangeStart MsgBox objDataRangeEnd '==== ====== S řadami pracovních listů ("List2") (objDataRangeStart, objdatarangaeend) .Name = "rangename" Konec s "=========== ====== 'Nastavit ověření na požadované buňce' Nastavit objCell = wsDestList.Cells (8, 4) 'Umístění rozevíracího seznamu' MsgBox objCell x = 4 y = 6 Do Set objCell = wsDestList.Cells (x, y) 'Umístění rozevíracího seznamu s objCell.Validation .Delete' .Add Typ: = xlValidateList, AlertStyle: = xlValidAlertStop, Operator: = xlBetween, Formule1: = "=" & objDataRangeStart.Address & ":" & objDataRangeStart.Address & ":" & objDataRangeEnd. Adresa '= ================== Přidat typ: xlValidateList, AlertStyle : = xlValidAlertStop, Operator: = _ xlBetween, Formula1: = "= rangename" '==================== ======================== .IgnoreBlank = True .InCellDropdown = True .ErrorTitle = "Upozornění" .ErrorMessage = " Vyberte hodnotu ze seznamu dostupného ve vybrané buňce. " .ShowError = True End S x = x + 1 'y = y + 1 Smyčka Do x = 51 Konec Sub 

Děkujeme venkat1926 za tento tip.

Předchozí Článek Následující Článek

Nejlepší Tipy