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.

Iepriekšējais Raksts Nākamais Raksts

Top Padomi