首页 > 解决方案 > VBA如何根据日期仅锁定工作表中的某些列

问题描述

本质上,我在可能数据的每一列顶部都有一个日期字段,对应于每个月的第一天。此过程中有几个步骤已经完成,但最后一步是锁定日期值早于当前日期的每一列。数据结构如下:

|43282   |43313   |43344   |43374    |43405    |43525   |
|7/1/2018|8/1/2018|9/1/2018|10/1/2018|11/1/2018|3/1/2019|
|$125    |$137    |$654    |$876     |$136     |$125    |

等等。我尝试使用的代码如下:

Sub LockDateCols()

Dim i As Range
For Each i In Sheets("Sheet1").Range("F1:AS1").Cells
    If i.Value < Int(CDbl(Now())) Then
        i.EntireColumn.Locked = True
    End If
Next i
End sub

其中 F1:AS1 是包含数字日期值的单元格行。但是,当我执行此代码时,它实际上并没有锁定任何东西。我错过了什么?在提供的示例中,我希望最右边的列可编辑,同时锁定其他 5 个,因此仅锁定整个工作表是行不通的。

标签: excelvba

解决方案


推荐阅读