Excel VBA的更改大于或小于给出运行时错误1004

时间:2019-02-12 14:43:28

标签: excel vba

所以我昨天发布了以下问题:Link

并能够编写以下代码来(kinda)解决该问题:

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

此代码锁定日期值大于当前日期的列,它需要执行相反的操作,但是当我切换大于符号时,出现运行时1004错误,提示“无法设置范围类”

我基本上没有主意,没有合并范围。

1 个答案:

答案 0 :(得分:0)

以下代码有效:

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语句,而不是仅仅尝试一行操作,这似乎已经解决了问题。