我有一个宏,可以解锁我的excel文档,进行拼写检查,然后锁定工作表。但是,锁定工作表后,它将删除关于用户在锁定的电子表格中可以执行的操作的规则(例如:添加/删除行,更改框的高度/宽度等)
我尝试列出start chrome --headless --print-to-pdf="C:\\temp\\1.pdf" http://example.com
之后的规则,但是它不起作用。
.Protect Password
答案 0 :(得分:0)
您要寻找的是能够修改工作表而无需实际对其进行保护。 您可以保护工作表,但允许VBA进行更改,而用户则不能:
ActiveSheet.Protect UserInterfaceOnly:=True
https://docs.microsoft.com/en-us/office/vba/api/excel.worksheet.protect
名称:UserInterfaceOnly
描述:True以保护用户界面,但不保护宏。如果省略此参数,则保护既适用于宏,也适用于用户界面。
这假定首先保护工作表时将选项设置为True。
或者,您可以将当前保护设置的状态存储在Protection
对象中:
Dim myProtection as Protection
Set myProtection = ActiveSheet.Protection
如下所示:
请注意,出于某些原因,.AllowEditRanges
在读取时返回错误,因此我没有将其包括在列表中。
Sub test()
'Pick your Worksheet
Dim mySheet As Worksheet
Set mySheet = ActiveSheet
'Unprotect it
Dim myProtection As Protection
Set myProtection = mySheet.Protection
mySheet.Unprotect
'Do your VBA things
'Re Protect it
With myProtection
mySheet.Protect AllowFormattingCells:=.AllowFormattingCells, _
AllowFormattingColumns:=.AllowFormattingColumns, _
AllowFormattingRows:=.AllowFormattingRows, _
AllowInsertingColumns:=.AllowInsertingColumns, _
AllowInsertingRows:=.AllowInsertingRows, _
AllowInsertingHyperlinks:=.AllowInsertingHyperlinks, _
AllowDeletingColumns:=.AllowDeletingColumns, _
AllowDeletingRows:=.AllowDeletingRows, _
AllowSorting:=.AllowSorting, _
AllowFiltering:=.AllowFiltering, _
AllowUsingPivotTables:=.AllowUsingPivotTables
End With
End Sub
注意:.Protect
包括[DrawingObjects],[Scenarios]和[USerInterfaceOnly],而Protection
对象未提供这些设置。我知道[Contents]参数应该与.AllowEditRanges
相关,但是由于无法访问,我想它也会被跳过,