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

时间:2018-12-11 04:20:18

标签: excel vba formatting cell

我设置了一个锁定的工作簿,在其中使用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

2 个答案:

答案 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