我设置了一个锁定的工作簿,在其中使用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
答案 0 :(得分:0)
Worksheet.Protect
文档具有所需的内容,尤其是以下参数,都应为True
。
AllowFormattingCells
: True 允许用户格式化受保护工作表上的任何单元格。默认值为 False 。AllowFormattingColumns
: True 允许用户格式化受保护工作表上的任何列。默认值为 False 。AllowFormattingRows
: True 允许用户格式化受保护的任何行。默认值为 False 。
答案 1 :(得分:0)
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 。