我是宏的新手,我正在努力学习如何编写一些简单的表达式。我想比较一列中的所有值,看它们是否与当月的当天匹配。
例如:列H包含对应于该月的随机日期的数字。我想知道如何在宏中编写表达式,以便今天== H列中的值(换句话说,如果今天是19,H列中的值是19)则更改单元格文本颜色红色(或其他一些动作)。
到目前为止,我只知道如何使用以下方法选择一系列单元格:Range(“B2,C7,I8”)但我不知道如何选择整个列。谁能告诉我怎么写这样的表达?
*注意:我不是在谈论跨表格比较列。我只需要将一列中的值与当前日期进行比较。谢谢!
答案 0 :(得分:1)
要对整个列执行操作,这些行中的任何一行都将起作用:
Range("A:A")
Columns("A")
至于检查列是否包含特定条件,我建议使用工作表公式Countif:
MsgBox WorksheetFunction.Countif(Columns("A"), Day(Now)) > 0
要查找列中包含条件的所有单元格,可以使用Range.Find方法:
Dim rngFound As Range
Dim strFirst As String
Dim lDayNum As Long
lDayNum = Day(Now)
Columns("A").Interior.Color = xlNone
Set rngFound = Columns("A").Find(lDayNum, Cells(Rows.Count, "A"), xlValues, xlWhole)
If Not rngFound Is Nothing Then
strFirst = rngFound.Address
Do
rngFound.Interior.Color = RGB(255, 0, 0)
Set rngFound = Columns("A").Find(lDayNum, rngFound, xlValues, xlWhole)
Loop While rngFound.Address <> strFirst
End If
最后,使用某些条件格式可以更轻松地实现这一点。