Excel - Vytvoriť rozbaľovací zoznam na určité bunky

Problém

Chcel som vytvoriť rozbaľovací zoznam z údajov v Tabuľke2. Skúšal som nasledujúce kódy, ale výsledok sa zdá byť nesprávny. Namiesto údajov v hárku 2 uvedených v rozbaľovacom zozname sa v rozbaľovacom zozname nachádzali údaje z hárku 1 (čo je môj cieľový hárok).

Tiež by som chcel mať rozbaľovací zoznam pre určité bunky, kde mám informácie o bunkách predtým, tj rozbaľovací zoznam by mal byť v stĺpci F listu1, kde sú informácie o stĺpci E listu1 a opakovať až do konca zoznam.

Týmto je pripojený súbor, na ktorom tu pracujem.

Riešenie

Zoznam validácií vytvoríte z ANOTHER WORKSHEET a pomenujte tento zoznam (v hárku2).

a použiť ho ako vzorec

Pokúsil som sa zmeniť vaše makro bez rušenia okrem zmeny jedného alebo dvoch riadkov

Uviedol som názov rozsahu ako "rangename". môžete ho zmeniť v makre

Ak je to potrebné, upravte ho trochu viac.

 Sub Dropdown () Dim x ako dlhé, y ako dlhé Dim objCell ako rozsah Dim objDataRangeStart As range Dim objDataRangeEnd As Range Dim rangename As String '>> Nastaviť rozsah pre platnú množinu údajov wsSourceList = Sheets ("Sheet2") Set wsDestList = Sheets ("Sheet1") Nastaviť objDataRangeStart = wsSourceList.Cells (1, 2) 'Štart rozsah pre položky rozbaľovacieho zoznamu Set objDataRangeEnd = wsSourceList.Cells (6, 2)' Koniec rozsahu pre položky rozbaľovacieho zoznamu MsgBox objDataRangeStart MsgBox objDataRangeEnd '==== ====== S pracovnými hárkami ("Sheet2") Rozsah (objDataRangeStart, objdatarangaeend) .Name = "rangename" Koniec s "=========== ====== 'Nastaviť overenie na požadovanej bunke' Nastaviť objCell = wsDestList.Cells (8, 4) 'Umiestnenie rozbaľovacieho zoznamu' MsgBox objCell x = 4 y = 6 Do Set objCell = wsDestList.Cells (x, y) 'Umiestnenie rozbaľovacieho zoznamu s objCell.Validation .Delete' .Add Typ: = xlValidateList, AlertStyle: = xlValidAlertStop, Operator: = xlBetween, Formula1: = "=" & objDataRangeStart.Address & ":" & objDataRangeEdart. Adresa. \ T ===================????==== .Pridať typ: = xlValidateList, AlertStyle : = xlValidAlertStop, Operator: = _ xlBetween, Formula1: = "= rangename" '==================== ======================== .IgnoreBlank = True .InCellDropdown = True .ErrorTitle = "Upozornenie" .ErrorMessage = " Vyberte hodnotu zo zoznamu dostupného vo vybratej bunke. " .ShowError = Pravdivý koniec S x = x + 1 'y = y + 1 Slučka Do x = 51 Koniec Sub 

Ďakujeme venkat1926 za tento tip.

Predchádzajúci Článok Nasledujúci Článok

Najlepšie Tipy