Excel VBA изменяется больше чем на меньше, чем дает Ошибка времени выполнения 1004 - PullRequest
0 голосов
/ 12 февраля 2019

Итак, я вчера отправил следующий вопрос: Ссылка

и смог написать следующий код, чтобы (вроде) решить его:

Sub LockDateCols()

Dim j As Range

Sheets("Sheet1").Unprotect
curdate = Int(CDbl(Now()))

For Each j In Sheets("Sheet1").Range("F6:As6").Cells
    If curdate > j.Value Then
        j.EntireColumn.Locked = False
    End If
Next j
Sheets("Sheet1").Protect
End Sub

Этот кодблокирует столбцы, которые имеют значение даты БОЛЬШЕ, чем текущая дата, и для этого нужно сделать обратное, но когда я переключаю знак «больше», я получаю ошибку Runtime 1004, которая говорит: «невозможно установить заблокированное свойство класса диапазона»

Я в основном вне идей, объединенных диапазонов нет.

1 Ответ

0 голосов
/ 12 февраля 2019

Работает следующий код:

Sub LockDateCols()

Dim j As Range

Sheets("Proposed Baseline").Unprotect
curdate = Int(CDbl(Now()))

For Each j In Sheets("Proposed Baseline").Range("f6:As6").Cells
    If j.Value > curdate Then
        j.EntireColumn.Locked = False
    Else
        j.EntireColumn.Locked = True
    End If
Next j
Sheets("Proposed Baseline").Protect
End Sub

Вместо того, чтобы пытаться сделать это одной строкой, я добавил оператор else, и это, похоже, сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...