【发布时间】:2017-05-24 00:11:38
【问题描述】:
我尝试将光标调整到 Excel 工作表的匹配日期列。在我看来,所有“查找”或“匹配”功能都无法正常工作。
我正在使用 Excel 2007。
日期值在 R10:HU10 的范围内,格式如下:DD.MM.YYYY,格式化用户定义(也尝试过日期和文本 - 没有区别)。今天的日期在单元格 (CI10) 中。
工作表窗口冻结在“Q”列 - 日期条目开始之前的最后一列。
我试图完成的是向右滚动,因此“CI10”列将位于“Q”列旁边
出于测试原因,我尝试使用以下 VBA 代码为特定列着色:
Private Sub Worksheet_Activate()
Dim TodaysDate As Date
Dim Rng As Range
TodaysDate = Date
With Rows("10:10")
Set Rng = .Find(what:=TodaysDate, _
after:=.Cells(.Cells.Count), _
LookIn:=xlFormulas, _
lookat:=xlWhole, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, MatchCase:=False)
If Not Rng Is Nothing Then
Rng.EntireColumn.Interior.Color = vbMagenta
Else
'Give a message that today's date was not found
MsgBox "Nothing found"
End If
End With
End Sub
它不起作用,因为 Rng 将永远是“无”。
任何帮助将不胜感激,尤其是有关系统日期和搜索范围内日期条目之间正确比较方法的提示
【问题讨论】:
-
我不太精通日期函数,但对我而言,
Date以m/d/yyyy的格式返回,这与您的dd.mm.yyyy不匹配,但这可能是本地化问题。尽管如此,当你运行它时,你真的检查过TodaysDate是什么吗?我建议您在设置后立即调用一个消息框来查看值,即MsgBox TodaysDate
标签: excel date comparison positioning vba