Excel - Ustvari spustni seznam na določenih celicah

Težava

Želel sem ustvariti spustni seznam iz podatkov v Sheet2. Poskušal sem naslednje kode, vendar se zdi, da je rezultat nepravilen. Namesto podatkov v Sheet2, ki so navedeni v spustnem seznamu, je spustni seznam vseboval podatke iz Sheet1 (kar je moj ciljni list).

Prav tako bi rad imel spustni seznam na določenih celicah, kjer imam informacije o celicah, tj. Spustni seznam mora biti v stolpcu F lista 1, kjer so informacije o stolpcu E iz lista1 in ponovite do konca. seznam.

S tem je priložena datoteka, na kateri delam.

Rešitev

Ustvarite seznam za preverjanje iz ANOTHER WORKSHEET in navedite ime razpona za ta validacijski seznam (v listu2)

in jo uporabite kot formulo

Poskušal sem spremeniti vaš makro brez motenj, razen spreminjanja ene ali dveh vrstic

Ime razpona sem dal kot "rangename". lahko ga spremenite v makru

Če je potrebno, ga še malo popravite.

 Pod padcem () Dim x Kot dolg, y kot dolg Dim objCell As Območje Dim objDataRangeStart As Območje Dim objDataRangeEnd As Range Dim rangename As String '>> Nastavi obseg za veljavno vrsto podatkov wsSourceList = Listi ("Sheet2") Set wsDestList = Listi ("Sheet1") Set objDataRangeStart = wsSourceList.Cells (1, 2) 'Začetno območje za spustne sezname v seznamu Nastavi objDataRangeEnd = wsSourceList.Cells (6, 2)' Končno območje za spustne sezname v seznamu MsgBox objDataRangeStart MsgBox objDataRangeEnd '==== ============= Z delovnimi listi ("Sheet2") Razpon (objDataRangeStart, objdatarangaeend) .Name = "rangename" End With "=============== ====== '>> Nastavi preverjanje na zahtevano celico' Nastavi objCell = wsDestList.Cells (8, 4) 'Lokacija spustnega seznama' MsgBox objCell x = 4 y = 6 Nastavi objCell = wsDestList.Cells (x, y) 'Lokacija spustnega seznama z objCell.Validation .Delete' .Add Type: = xlValidateList, AlertStyle: = xlValidAlertStop, Operator: = xlBetween, Formula1: = "=" & objDataRangeStart.Address & ":" & objDataRangeEnd. Naslov '= ========================================== Vrsta oglasa: = xlValidateList, AlertStyle : = xlValidAlertStop, Operator: = _ xlBetween, Formula1: = "= rangename" '================================ ================================ .================== .IgnoreBlank = True.InCellDropdown = True .ErrorTitle = "Opozorilo" .ErrorMessage = " Izberite vrednost s seznama, ki je na voljo v izbrani celici. " .ShowError = True End S x = x + 1 'y = y + 1 Loop dokler x = 51 End Sub 

Hvala za venkat1926 za ta tip.

Prejšnji Članek Naslednji Članek

Top Nasveti