在受密码保护的文件上使用MSGBox运行VBA

时间:2018-11-26 12:58:02

标签: excel vba

我正在尝试按此处所述运行代码:

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 :(得分:1)

不要手动保护您的工作表。而是使用UserInterfaceOnly:=True通过VBA保护它们。这样,您的工作表就受到用户界面的保护,但是VBA仍然可以访问它们:

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

请注意,您需要在重新打开工作簿后重新应用UserInterfaceOnly:=True