打开文件时如何阻止单元格?

时间:2019-06-19 13:18:26

标签: excel vba

我通过vba设置了一些公式来更改H,J,K,L和N列中的值。这些更改基于G列值和Submit按钮,这很好用。

当我执行锁定它们的过程以避免用户进行编辑时,这表示先解锁整个工作表,然后锁定我需要的工作表,此后,我修改G列并得到:

  

“范围类的自动拟合方法失败”。

我在H列上使用它。

此突出显示:

Sheet1.Range("H11:H50").Rows.EntireRow.AutoFit

1 个答案:

答案 0 :(得分:0)

您正在尝试在保护打开时使用VBA更改受保护的单元。您可以采用多种方法来解决,但是,最简单的解决方案如下所示:

Sub Example()

Sheet1.Unprotect "YOURPASSWORD" 'if no password was used, you don't need to include it
Sheet1.Range("H11:H50").Rows.EntireRow.AutoFit
Sheet1.Protect "YOURPASSWORD"

End Sub

替代解决方案:

通过在工作簿的打开过程中使用它。 VBA可以对锁定的单元进行更改,但用户不能。

一个警告:如果代码中发生错误,此错误将重置,您需要关闭并重新打开工作表才能使其再次起作用

Private Sub Workbook_Open()
    Dim ws As Worksheet
    For Each ws In ThisWorkbook.Worksheets
        ws.Protect UserInterfaceOnly:=True
    Next ws
End Sub