Excel - legördülő lista létrehozása bizonyos cellákon

Probléma

Létrehozott listát akartam létrehozni a Sheet2 adatokból. Megpróbáltam a következő kódokat, de az eredmény helytelen. A legördülő listában felsorolt ​​2. lap adatai helyett a legördülő lista tartalmazza a Sheet1 adatait (ami az én céllap).

Azt is szeretném, ha a legördülő lista bizonyos cellákban van, ahol van információ a cellákról, azaz a legördülő listának az 1. lap F oszlopában kell lennie, ahol van információ az 1. lap E oszlopában, és ismételje meg az 1. oszlop végét. listát.

Ezzel csatoltam a fájlt, amit itt dolgozok.

Megoldás

Valódi listát hoz létre a másik munkaterületről, és adjon meg egy tartománynevet az érvényesítési listához (a 2. lapon)

és használja ezt a képletként

Megpróbáltam zavartalanul módosítani a makrót, kivéve egy vagy két sor megváltoztatását

A tartománynevet "rangenév" -nek adtam. megváltoztathatja azt a makróban

Szükség esetén csekélyebbé válik.

 Sub Dropdown () Dim x As Long, y As Long Dim objekció Tartományként Dim objDataRangeStart As Range Dim objDataRangeEnd As Range Dim rangename Stringként >> >> A tartomány beállítása az érvényes adatkészlethez wsSourceList = Lapok ("Sheet2") Set wsDestList = Lapok ("Sheet1") Állítsa be az objDataRangeStart = wsSourceList.Cells (1, 2) 'Start tartományát a legördülő listák bejegyzéseinek megadásához Set objDataRangeEnd = wsSourceList.Cells (6, 2)' Végső tartomány a legördülő lista bejegyzésekhez MsgBox objDataRangeStart MsgBox objDataRangeEnd '==== ============= A munkalapok ("Sheet2") tartománya (objDataRangeStart, objdatarangaeend) .Name = "rangename" Vége '=============== ====== '>> Érvényesítés beállítása kötelező cellában' Set objCell = wsDestList.Cells (8, 4) 'A legördülő lista helye' MsgBox objCell x = 4 y = 6 Do Set objCell = wsDestList.Cells (x, y) 'A legördülő lista helye Az objektCell.Validation .Delete' .Add Type: = xlValidateList, AlertStyle: = xlValidAlertStop, Operator: = xlBetween, Formula1: = "=" & objDataRangeStart.Address & ":" & objDataRangeEnd. Cím '= ========================================== .Add típusa: = xlValidateList, AlertStyle : = xlValidAlertStop, Operátor: = _ xlBetween, Formula1: = "= rangename" '================================ ================================ .IgnoreBlank = True .InCellDropdown = True .ErrorTitle = "Figyelmeztetés" .ErrorMessage = " Kérjük, válasszon ki egy értéket a kiválasztott cellában elérhető listából. " .ShowError = Igaz vége x = x + 1 'y = y + 1 hurok x = 51 vége 

Köszönet venkat1926-nak a tippért.

Előző Cikk Következő Cikk

Top Tippek