Код ниже, работает отлично. Появилась необходимость - считать последней строкой (для установки выпадающего списка) - строку, которая имеет заливку любым цветом (interior.pattern<>xlNone) И ориентироваться на границы (первая и последняя строки) достаточно по одному столбцу F, пример: в столбце F, начиная всегда с 6 строки - существует заливка строк цветом, непрерывная. То есть, допустим с 6 по 152 строку (только что это динамический диапазон, всегда с 6 строки, но нужно найти последнюю строку нижнюю, имеющую заливку) столбец F имеет заливку любым цветом, поэтому список выпадающий будет в S6:X152.
Ориентируясь на этот диапазон, нужно на соответствующий в столбцах S и X с 6 строки установить выпадающий список. В частности, в примере вложенном - S6:X22.
[vba]
Код
Sub DropDownList() r_ = 6 For i = 19 To 24 r1_ = Cells(Rows.Count, i).End(xlUp).Row If r1_ > r_ Then r_ = r1_ Next i With Range("S6:X" & r_).Validation .Delete .Add Type:=xlValidateList, Formula1:="=спис" End With End Sub
[/vba]
Код ниже, работает отлично. Появилась необходимость - считать последней строкой (для установки выпадающего списка) - строку, которая имеет заливку любым цветом (interior.pattern<>xlNone) И ориентироваться на границы (первая и последняя строки) достаточно по одному столбцу F, пример: в столбце F, начиная всегда с 6 строки - существует заливка строк цветом, непрерывная. То есть, допустим с 6 по 152 строку (только что это динамический диапазон, всегда с 6 строки, но нужно найти последнюю строку нижнюю, имеющую заливку) столбец F имеет заливку любым цветом, поэтому список выпадающий будет в S6:X152.
Ориентируясь на этот диапазон, нужно на соответствующий в столбцах S и X с 6 строки установить выпадающий список. В частности, в примере вложенном - S6:X22.
[vba]
Код
Sub DropDownList() r_ = 6 For i = 19 To 24 r1_ = Cells(Rows.Count, i).End(xlUp).Row If r1_ > r_ Then r_ = r1_ Next i With Range("S6:X" & r_).Validation .Delete .Add Type:=xlValidateList, Formula1:="=спис" End With End Sub
Sub DropDownList() r1_ = Range("A1").SpecialCells(xlLastCell).Row With Range("S6:X" & r1_).Validation .Delete .Add Type:=xlValidateList, Formula1:="=спис" End With End Sub
[/vba] Предполагаем, что ниже последней закрашенной строки ничего нет и не было
Так нужно? [vba]
Код
Sub DropDownList() r1_ = Range("A1").SpecialCells(xlLastCell).Row With Range("S6:X" & r1_).Validation .Delete .Add Type:=xlValidateList, Formula1:="=спис" End With End Sub
[/vba] Предполагаем, что ниже последней закрашенной строки ничего нет и не было_Boroda_