所以我昨天发布了以下问题: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错误,提示“无法设置范围类”
我基本上没有主意,没有合并范围。
答案 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语句,而不是仅仅尝试一行操作,这似乎已经解决了问题。