我尝试将光标调整到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总是'没什么'。
任何帮助都将受到高度赞赏,尤其是有关系统日期与搜索范围中的日期条目之间正确比较方法的提示
答案 0 :(得分:1)
我这样做了,它运作良好。 dateRange可能类似于“A1:H1”,当前数据被输入到单元格H1中,脚本在运行时跳转到单元格H1。
Sub jumpToDate()
Dim c As Range
Dim d As Date
d = Date
For Each c In Range("dateRange")
If c = d Then
c.Select
End If
Next c
End Sub
我认为这就是你要找的东西,只是阅读标题。
我正在使用非英语/ excel日期格式(dd / mm / YYYY),这通常会让我头痛的工作日期格式,但是excel设法正确处理日期
答案 1 :(得分:0)
我建议您在单元格的值中搜索日期,而不是在用于计算单元格的公式中搜索。
因此,请将LookIn:=xlFormulas
更改为LookIn:=xlValues
。
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:=xlValues, _
lookat:=xlWhole, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
Rng.EntireColumn.Interior.Color = vbMagenta
'Set the window so that the date is in the top-left corner
Application.GoTo Rng, True
Else
'Give a message that today's date was not found
MsgBox "Nothing found"
End If
End With
End Sub