Excel工作表保护停止macros

我一直在使用一段代码来缩放工作表到活动窗口。 但是,如果我添加表单保护macros将失败。 为了解决这个问题,我打电话给一个子删除保护,然后重新申请保护。 有没有办法来运行我的子没有删除和重新申请表保护?

代码更改缩放:

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 

  • 删除所有表格保护
  • 打开VBE( Alt + F11
  • 转到立即窗口( Ctrl + G
  • 键入ActiveSheet.Protect Password:="myPassword", UserInterfaceOnly:=True并按Enter

活动工作performance在用密码“myPassword”保护,但是UserInterfaceOnly参数意味着您的代码仍然可以在该表上运行,而不受工作表保护

没有办法做到这一点,我知道没有删除和重新join保护。 一旦保护被设置,没有办法绕过表面保护而不去除保护。

你的方式是正确的方式,不应该影响性能或任何事情。

编辑,因为它原来有一种方法。 不过,我一直这样做没有问题。