Я работаю над инструментом мониторинга планирования, и мне нужно заблокировать диапазон ячеек на основе условия (точнее: на основе значения ячейки).
Вот пример: что бы яхотелось бы получить следующее: когда значение в столбце «Q» равно «Подтверждено», ячейки в одной и той же строке от столбца М до Q блокируются.
Вот код, который я сейчас запускаю:
Sub planning_blocker()
Dim last_row As Integer
' Compute the last row
last_row = Worksheets("Planning").Cells(Rows.Count, 1).End(xlUp).Row
Debug.Print last_row
For i = 3 To last_row
If Worksheets("Planning").Cells(i, 17).Value = "" Then
Sheets("Planning").Range("M" & i & ":" & "P" & i).Locked = False
Else
Sheets("Planning").Range("M" & i & ":" & "P" & i).Locked = True
End If
Next i
Sheets("Planning").Protect Password:="User"
End Sub
Это работает частично потому, что: - он блокирует всю строку, где обнаруживается «подтвержденный», а не только диапазон - эторассмотрим только первую строку, в которой обнаружено «подтверждено», а не остальные (если у меня более одной строки, помеченной «подтверждено», блокируется только первая строка).
Я новичок вVBA, так что я действительно не знаю, где ошибка.
Спасибо за вашу помощь!