我已尝试过本网站上的建议,但似乎都没有。
在单元格C6:Z6中,我的日期为01/01/2011至2012年12月12日(英国日期格式)。我运行以下宏:
Sub FindDate()
Range("C6:Z6").Select
Selection.Find(What:="01/08/2012", After:=ActiveCell, LookIn:=xlFormulas _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
End Sub
并且似乎总是得到运行时错误91.我已尝试使用' Set'设定范围,也不做。
对于上下文,我试图获取预设日期的列号(使用ActiveCell.Column)。
答案 0 :(得分:1)
当您只搜索“01/08/2012”时,您实际上是在搜索字符串。您必须使用CDate
将其转换为日期。
最好还是使用If Not aCell Is Nothing Then
检查是否找到任何内容以避免任何错误。请参阅此link中的帖子。
试试这个
Sub FindDate()
Dim aCell As Range
Set aCell = Range("C6:Z6").Find(What:=CDate("01/08/2012"), After:=ActiveCell, _
LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, _
SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False)
If Not aCell Is Nothing Then
MsgBox aCell.Column
Else
MsgBox "Not Found"
End If
End Sub