Ниже приведен код, который должен проходить oop на каждом листе и применять проверку данных (для нескольких столбцов на листе). Он работает для первого листа, но не для следующего и выдает код ошибки 1004, когда дело доходит до Set ValidationRange = Worksheets(Works.Name)
, как если бы он не мог ссылаться на него должным образом.
Я пробовал много разных способов его кодировать, следуя многим предложения.
Sub loopValidateTest()
Dim Works As Worksheet
For Each Works In Sheets
If Works.Name <> "Bilan_H" Then
For ColumnList = 2 To 16
Set ValidationRange = Worksheets(Works.Name).Range(Cells(1, ColumnList), Cells(46, ColumnList))
If IsEmpty(Cells(1, ColumnList)) = False Then
With Worksheets(Works.Name).Range(Cells(48, ColumnList), Cells(2000, ColumnList)).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="=" & ValidationRange.Address
End With
End If
Next ColumnList
End If
Next Works
End Sub