如何允许受保护的单元格在大小上进行格式化和调整-VBA



我设置了一个锁定的工作簿,在其中我使用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允许用户格式化受保护工作表上的任何单元格。默认值为False
  • AllowFormattingColumns:True允许用户格式化受保护工作表上的任何列。默认值为False
  • AllowFormattingRows:True允许用户格式化受保护的上的任何行。默认值为False

Worksheet.Protect的参数包括AllowFormattingCellsAllowFormattingRows的选项。

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中终止。

最新更新