У меня есть защищенный лист без пароля, ячейка D6 заблокирована. Код VBA для этой ячейки не будет работать.Защищенный лист, сотовой связи заблокирован, не принимается код 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
Если ваш лист защищен (независимо от того, существует ли здесь пароль, здесь нет никакой реальной разницы), и ячейка заблокирована, тогда вам нужно будет отменить защиту перед внесением любых изменений из кода, если только вы не защищены в VBA с использованием аргумента 'UserInterfaceOnly' , –
Я не уверен, что правильно объяснил, что хочу. Я хочу, чтобы поле D6 заблокировалось, потому что это не поле, в которое пользователь должен вводить что-либо. Мой код vba заполняет его из других записей ячейки. Проблема в том, что как только я защищаю страницу, а затем предоставляю ее пользователю, вычисления не будут автоматически перенаправляться на D6. Он остается на уровне 0 долларов. На самом деле я не знаю, почему я должен вообще защищать листок. Спасибо. – geddeca