Excel - izveidojiet nolaižamo sarakstu dažās šūnās
Izdevums
Es gribēju izveidot nolaižamo sarakstu no datiem, kas atrodas lapā 2. Esmu mēģinājis izmantot šādus kodus, bet rezultāts šķiet nepareizs. Nolaižamajā sarakstā uzskaitīto datu2 vietā, nolaižamajā sarakstā bija dati no Sheet1 (kas ir mana galamērķa lapa).
Tāpat es gribētu, lai nolaižamajā sarakstā tiktu iekļautas dažas šūnas, kurās man ir informācija par šūnām, ti, nolaižamajam sarakstam jābūt 1. lapas F slejā, kur ir informācija par 1. lapas E sleju un atkārtot līdz 1. lapas beigām. saraksts.
Līdz ar to ir pievienots fails, ar kuru es strādāju šeit.
Risinājums
Jūs izveidojat validācijas sarakstu no citas darba lapas, norādot šī validācijas saraksta diapazona nosaukumu (laplapā 2)
un izmantot to kā formulu
Es mēģināju modificēt makro bez traucējumiem, izņemot vienu vai divas rindas
Esmu norādījis diapazona nosaukumu kā "rangename". to var mainīt makro
Nepieciešamības gadījumā to nedaudz nomainiet.
Apakšējā nolaišana () Dim x As Long, y As Long Dim objekts Kā diapazons Dim objDataRangeStart Kā diapazons Dim objDataRangeEnd As diapazons Dim rangename As String '>> Iestatiet diapazonu derīgai datu kopai wsSourceList = Lapas ("Sheet2") Set wsDestList = Lapas ("Sheet1") Iestatīt objDataRangeStart = wsSourceList.Cells (1, 2) 'Sākuma diapazons nolaižamo sarakstu ierakstiem Iestatīt objDataRangeEnd = wsSourceList.Cells (6, 2)' Beigšanas diapazons nolaižamo sarakstu ierakstos MsgBox objDataRangeStart MsgBox objDataRangeEnd '==== ============= Ar darblapām ("Sheet2") diapazons (objDataRangeStart, objdatarangaeend) .Name = "rangename" Beigas ar '=============== ====== '>> Iestatīt validāciju obligātajā šūnā' Set objCell = wsDestList.Cells (8, 4) 'Nolaižamā saraksta atrašanās vieta' MsgBox objCell x = 4 y = 6 Do Set objCell = wsDestList.Cells (x, y) 'Nolaižamā saraksta atrašanās vieta Ar objCell.Validation .Delete' .Add Type: = xlValidateList, AlertStyle: = xlValidAlertStop, Operators: = xlBetween, Formula1: = "=" & objDataRangeStart.Address & ":" & objDataRangeEnd. Adrese '= ========================================== .Add Type: = xlValidateList, AlertStyle : = xlValidAlertStop, Operators: = _ xlBetween, Formula1: = "= rangename" '================================ ================================ .IgnoreBlank = True .InCellDropdown = True .ErrorTitle = "Brīdinājums" .ErrorMessage = " Lūdzu, atlasiet vērtību sarakstā, kas pieejams izvēlētajā šūnā. " .ShowError = True beigas ar x = x + 1 'y = y + 1 cilpa līdz x = 51 beigas
Pateicoties venkat1926 par šo tip.