我有一张没有密码的受保护的纸张,单元格D6已锁定。该单元格的VBA代码不会运行。
我在这里看过一些帖子。这是解决类似问题的方法。不知道如何使用它或在哪里使用它。如上所述,我没有密码。
Worksheets("Loading").Protect Password:=****, UserInterfaceOnly:=True
Private Sub Worksheet_Change(ByVal Target As range)
Application.EnableEvents = False '<--| disable events handling
On Error GoTo ErrorHandler '<--| be sure to catch any error and enable events handling back
Select Case Target.Address
Case "$D$4"
'Recalculate Downpayment D5 if Purchase Price is changed
range("D5").Value = (range("D4").Value * range("B5").Value) / 100
Debug.Print "New value for D5 Downpayment "; range("D5").Value
range("D6").Value = (range("D4").Value - range("D5").Value) ' This cell won't activate when locked and sheet protected
Debug.Print "D6 New Mortgage " & range("D6").Value
答案 0 :(得分:0)
您有一个工作表更改事件,可能会更改单元格D6的值。要更改D6的值,如果单元格已锁定,则VBA需要首先使其不受保护。现在你说你希望D6始终受到保护,请执行以下操作:
Case "$D$4"
'unprotect sheet
Worksheets("Loading").Unprotect
'Recalculate Downpayment D5 if Purchase Price is changed
range("D5").Value = (range("D4").Value * range("B5").Value) / 100
Debug.Print "New value for D5 Downpayment "; range("D5").Value
range("D6").Value = (range("D4").Value - range("D5").Value)
Debug.Print "D6 New Mortgage " & range("D6").Value
'protect the sheet back
Worksheets("Loading").Protect
如果这回答了你的问题,请点击复选标记。