Ошибка выполнения 1004 не удалось установить скрытое свойство класса диапазона - PullRequest
0 голосов
/ 11 марта 2020

Я получаю ошибку времени выполнения при открытии книги. Функция открытия прекрасно работает без функции закрытия, но как только я добавляю функцию закрытия, я получаю сообщение об ошибке. Есть предложения?

Private Sub Workbook_Open()

Application.ScreenUpdating = False
For Each cell In Range("A1:Z1")
If cell.Value = "X" Then
cell.EntireColumn.Hidden = True
Else
cell.EntireColumn.Hidden = False
End If
Next cell

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim ws As Worksheet

For Each ws In ThisWorkbook.Worksheets
ws.Protect "1962"
Next ws

ThisWorkbook.Protect "1962", True

ThisWorkbook.Save


End Sub

1 Ответ

0 голосов
/ 11 марта 2020

Ошибка возникает потому, что вы защищаете лист в подпрограмме BeforeClose. Следовательно, Workbook_Open не имеет доступа для его обновления при следующем открытии. Попробуйте это:

Private Sub Workbook_Open()

    Dim cell As Range

    Application.ScreenUpdating = False
    ActiveSheet.Unprotect "1962"            '<<<<
    For Each cell In Range("A1:Z1")
    If cell.Value = "X" Then
        cell.EntireColumn.Hidden = True
    Else
        cell.EntireColumn.Hidden = False
    End If
    Next cell
    ActiveSheet.Protect "1962"              '<<<<

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...