我通过vba设置了一些公式来更改H,J,K,L和N列中的值。这些更改基于G列值和Submit按钮,这很好用。
当我执行锁定它们的过程以避免用户进行编辑时,这表示先解锁整个工作表,然后锁定我需要的工作表,此后,我修改G列并得到:
“范围类的自动拟合方法失败”。
我在H列上使用它。
此突出显示:
Sheet1.Range("H11:H50").Rows.EntireRow.AutoFit
答案 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