У меня есть файл, который используется многими людьми. Они вводят данные время от времени. Я заблокировал и разблокировал ячейки, чтобы люди могли вводить данные, но не возиться с сгенерированными данными (например, временем). У меня есть код, который блокирует ячейку после каждого ввода, но затем, если кто-то введет неправильные данные, он не может быть отменен, если меня нет рядом.
Поэтому я решил создать код VBA, чтобы блокировать все ИСПОЛЬЗУЕМЫЕ ячейки каждые Х минут (поэтому, если кто-то совершит ошибку, чтобы исправить это), но не знаю, как выполнить протокол минут.
Я нашел этот хороший код для блокировки используемых ячеек:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error Resume Next
'Resume to next line if any error occurs
Dim Cell As Range
With ActiveSheet
'first of all unprotect the entire
'sheet and unlock all cells
.Unprotect Password:=""
.Cells.Locked = False
'Now search for non blank cells
'and lock them and unlock blank cells
For Each Cell In ActiveSheet.UsedRange
If Cell.Value = "" Then
Cell.Locked = False
Else
Cell.Locked = True
End If
Next Cell
.Protect Password:=""
'Protect with blank password, you can change it
End With
Exit Sub
End Sub
Единственное, что мне нужно, это добавить код для выполнения вышеуказанного каждые 30 минут или 1 час. Не знаю, будет ли Sub для этого значения Sub Workbook_BeforeSave
или AfterSave
, так как после каждой записи файл сохраняется автоматически или должен быть похож на модуль.
Заранее спасибо.