Excel Sheet 保护停止宏

Excel Sheet Protection Stopping Macro

我一直在使用一段代码来缩放以适应工作 sheet 到活动 window。但是,如果我添加 sheet 保护宏将失败。为了解决这个问题,我调用了一个 sub 来移除保护,然后重新应用保护。有没有办法 运行 我的潜艇无需删除并重新应用 sheet 保护?

更改缩放的代码:

Sub fixScreenSize()
    Dim rngX As Range
    Dim myLastCell As Range
    Dim myLastCellAdd As String
    Dim rngToZoom As Range      

        'Get address of last cell containing data
        Set myLastCell = Cells(1, 1).SpecialCells(xlLastCell)
            myLastCellAdd = Cells(myLastCell.Row, myLastCell.Column).Address
        'Find keyword in used range
        Set rngX = Range("A1", myLastCellAdd).Find("myZoomRange", lookat:=xlPart)
        'Zoom to correct range
        Range(Cells(1, 1), rngX).Select
        ActiveWindow.Zoom = True
        Range("A1").Select

    Set myLastCell = Nothing
    Set rngX = Nothing
End Sub

据我所知,如果不删除并重新添加保护,就无法做到这一点。一旦设置了保护,就无法在不移除保护的情况下绕过 sheet 保护。

你的方法是正确的,应该不会影响性能或任何东西。

编辑,事实证明有办法。但是我一直都是这样做的,没有问题。

  • 移除所有 sheet 保护
  • 打开VBE (Alt + F11)
  • 转到立即window (Ctrl + G)
  • 键入 ActiveSheet.Protect Password:="myPassword", UserInterfaceOnly:=True 并按 Enter

活动作品sheet 现在受密码 "myPassword" 保护,但是 UserInterfaceOnly 参数意味着您的代码仍然可以 运行 sheet 不受 sheet 的保护影响