我设置了一个锁定的工作簿,在其中我使用VBA锁定了工作表。如何调整此代码以允许用户更改行/列高度和单元格格式(例如,将单元格格式更改为百分比而不是货币(。但是,工作表应保持锁定状态。这是我目前在Workbook_Open:中的代码
非常感谢:(
Private Sub Workbook_Open()
Dim wSheet As Worksheet
Sheet1.Protect Password:="12345", _
UserInterFaceOnly:=True
Sheet11.Protect Password:="12345", _
UserInterFaceOnly:=True
Exit Sub
Worksheet.Protect
文档中有您需要的内容,特别是以下参数,它们都应该是True
。
AllowFormattingCells
:True允许用户格式化受保护工作表上的任何单元格。默认值为FalseAllowFormattingColumns
:True允许用户格式化受保护工作表上的任何列。默认值为FalseAllowFormattingRows
:True允许用户格式化受保护的上的任何行。默认值为False
Worksheet.Protect的参数包括AllowFormattingCells和AllowFormattingRows的选项。
AllowFormattingRows包含更改行高的功能。AllowFormattingCells涵盖了大多数标准单元格格式,但并不涵盖所有内容;例如不允许缩进。
Option Explicit
Private Sub Workbook_Open()
Sheet1.UnProtect Password:="12345"
Sheet1.Protect Password:="12345", _
UserInterFaceOnly:=True, _
AllowFormattingCells:=True, _
AllowFormattingRows:=True
Sheet11.UnProtect Password:="12345"
Sheet11.Protect Password:="12345", _
UserInterFaceOnly:=True, _
AllowFormattingCells:=True, _
AllowFormattingRows:=True
End Sub
子过程应在End sub而非Exit sub中终止。