Список проверки L oop не ссылается между листами, ошибка 1004 - PullRequest
0 голосов
/ 30 января 2020

Ниже приведен код, который должен проходить 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

1 Ответ

2 голосов
/ 30 января 2020
Set ValidationRange = Worksheets(Works.Name).Range(Cells(1, ColumnList), Cells(46, ColumnList))

, если явно не указано иное, ячейки принимают текущий активный лист. Это должно быть

 Set ValidationRange = works.range(works.cells(1,columnlist),works.cells(46,columnlist))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...