У меня есть таблица с несколькими листами, которая защищена, за исключением случаев, когда я хочу, чтобы люди вносили изменения, и все они защищены паролем. Я пытаюсь сделать кнопку команды, чтобы другие могли просматривать данные, но не могут вносить изменения в ячейки. Вот что я имею (не работает совершенно правильно).Блокировка ячеек с VBA
Private Sub mdRead_Click()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Sheets
'To open wookbook as read only, while proctecting changes.
Worksheet.Unprotect = True
Worksheet.Range("C10:I23,L10:R23,C25:I36,L25:R36,C45:I58,L45:I58,C60:I71,L60:R71").Select
Selection.Locked = True
Next ws
End Sub
ОК, поэтому вы выбираете несколько ячеек. Как это помогает * «другие могут просматривать данные» *? – Jeeped
Вышеупомянутый код 'Снять защиту всех листов, а не защищать их. Возможно, вы захотите добавить 'ws.Protect yourPassword'. – Ralph
Рассматривали ли вы изменение вашего метода [Worksheet.Protect] (https://msdn.microsoft.com/en-us/library/office/ff840611.aspx) для использования опции 'UserInterfaceOnly: = True'? При этом никакие действия не ограничены процессом VBA, но пользователь по-прежнему ограничен. – Jeeped