Я хочу, чтобы другие люди не редактировали содержимое ячейки на моем листе excel, используя VBA. Можно ли сделать это?Как заблокировать данные в ячейке в excel с помощью vba
ответ
Попробуйте использовать метод Worksheet.Protect
, например, так:
Sub ProtectActiveSheet()
Dim ws As Worksheet
Set ws = ActiveSheet
ws.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True, Password="SamplePassword"
End Sub
Вы должны, однако, быть обеспокоены, включая пароль в коде VBA. Вам не обязательно нужен пароль, если вы только пытаетесь создать простой барьер, который заставляет пользователя делать небольшие ошибки, такие как удаление формул и т. Д.
Кроме того, если вы хотите увидеть, как делать определенные вещи в VBA в Excel, попробуйте записать макрос и посмотреть на код, который он генерирует. Это хороший способ начать работу в VBA.
Вы можете сначала выбрать, какие клетки вы не хотите быть защищены (чтобы пользователь редактируемые), установив Locked статус их Ложные:
Worksheets("Sheet1").Range("B2:C3").Locked = False
Затем, вы можете защитить лист, и все остальные ячейки будут защищены. код, чтобы сделать это, и по-прежнему позволяет ваш VBA код для изменения клеток является:
Worksheets("Sheet1").Protect UserInterfaceOnly:=True
или
Call Worksheets("Sheet1").Protect(UserInterfaceOnly:=True)
Вы также можете захотеть объявление d пароль, в противном случае тривиальное дело просто нажать «снять защиту листа», а затем вы можете внести изменения в ранее заблокированные ячейки. – Jonathan
Строка над рабочими листами («Лист1»). Protect (UserInterfaceOnly: = True) должен быть Worksheets («Sheet1»). Защитить UserInterfaceOnly: = True, то есть без круглых скобок – dinotom
@ dinotom, посмотрите историю изменений и парня, который редактировал это так объясняет, почему –
Sub LockCells()
Range("A1:A1").Select
Selection.Locked = True
Selection.FormulaHidden = False
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= False, AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True
End Sub
Вы также можете сделать это на уровне рабочего листа захваченного в рабочем листе изменить событие. Если это удовлетворит ваши потребности. Позволяет динамической блокировки на основе значений, критериев, ЭСТ ...
Private Sub Worksheet_Change(ByVal Target As Range)
'set your criteria here
If Target.Column = 1 Then
'must disable events if you change the sheet as it will
'continually trigger the change event
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
MsgBox "You cannot do that!"
End If
End Sub
Скажем, например, в одном случае, если вы хотите запертых клеток из диапазона А1 i50 затем ниже код:
Worksheets("Enter your sheet name").Range("A1:I50").Locked = True
ActiveSheet.Protect Password:="Enter your Password"
В другом случае, если у вас уже есть защищенный лист затем следуют ниже код:
ActiveSheet.Unprotect Password:="Enter your Password"
Worksheets("Enter your sheet name").Range("A1:I50").Locked = True
ActiveSheet.Protect Password:="Enter your Password"
- 1. Как заблокировать активную строку в excel с помощью VBA?
- 2. Как заблокировать данные в ячейке, содержащей формулы, чтобы они не могли быть изменены в excel с помощью vba
- 3. Как заблокировать ячейки Excel в VBA?
- 4. как заблокировать между рядами в excel vba
- 5. Как заблокировать компьютер с помощью VBA
- 6. Подвести данные в Excel с помощью VBA
- 7. Добавление нескольких гиперссылок в одной ячейке Excel с помощью VBA
- 8. Определенный путь к файлу в ячейке с помощью Excel VBA
- 9. Изменение Часть шрифта текста в ячейке Excel с помощью VBA
- 10. Regex VBA Excel Поиск шаблонов в ячейке
- 11. Напишите формулу в ячейке Excel с помощью VBA
- 12. Подсчитайте в VBA (Excel) с определением значения в ячейке Excel
- 13. Неверный формат даты VBA в ячейке Excel
- 14. Как добавить данные в колонку в Excel с помощью VBA
- 15. Найти строку в ячейке с помощью VBA
- 16. Excel VBA Проверьте значение в ячейке
- 17. VBA Excel 2007. Создание кнопки в ячейке
- 18. VBA Excel заменяет разрывы строк в ячейке
- 19. Excel VBA для визуализации гиперссылки в ячейке
- 20. Удалить данные ячеек в excel с помощью vba
- 21. Вставка формулы Excel VBA в текущей ячейке
- 22. Excel VBA несколько столбцов в одной ячейке
- 23. Excel Vba: значения формул в ячейке
- 24. Разблокировать/заблокировать объекты с помощью vba
- 25. Excel VBA SUM формула Отображение в ячейке
- 26. excel 2003 vba: написать формулу в ячейке
- 27. Excel VBA: удалить зачеркнутые символы в ячейке
- 28. Excel VBA - суммировать данные с помощью макроса
- 29. фильтр excel данные с помощью vba
- 30. Как удалить отфильтрованные данные в excel с помощью VBA?
http://stackoverflow.com/questions/17111648/how-to-lock-excel-cells-in-vba/ 18868676 # 18868676 –