Запустите VBA с MSGBox для защищенного паролем файла - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь запустить код, как описано здесь:

Private Sub Worksheet_Calculate()
    Dim rr As Range, r As Range
    Dim bNo As Boolean
    Set rr = Range("AU17:AU300").Cells.SpecialCells(xlCellTypeFormulas)
    bNo = False
    For Each r In rr
        If r.Value = "No" Then
             bNo = True
        End If
    Next r

    If bNo = True Then
       MsgBox "The HS Number entered is not recorded. Please call Marcelo", vbExclamation
    End If
End Sub

для файла, защищенного паролем.

Я получаю

ошибка выполнения 1004:Вы не можете использовать эту команду на защищенном листе.

в строке: Set rr = Range...

Есть ли способ обойти это, поскольку я не могу оставить рабочий лист незащищенным.

1 Ответ

0 голосов
/ 27 ноября 2018

Не защищайте свои рабочие листы вручную.Вместо этого защитите их с помощью VBA, используя UserInterfaceOnly:=True.Таким образом, ваши рабочие листы защищены для пользовательского интерфейса, но VBA по-прежнему может получить к ним доступ:

.Protect Password:="myPassword", UserInterfaceOnly:=True

Обратите внимание, что вам нужно повторно применить UserInterfaceOnly:=True после повторного открытия книги.

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