使用Excel查找函数不断获取错误91
我在这个网站上尝试过这些建议,但似乎都没有效果 在单元格C6:Z6中,我的日期为2011年1月1日至2012年12月1日(英国日期格式)。我运行以下宏:使用Excel查找函数不断获取错误91,excel,excel-2007,runtime-error,vba,Excel,Excel 2007,Runtime Error,Vba,我在这个网站上尝试过这些建议,但似乎都没有效果 在单元格C6:Z6中,我的日期为2011年1月1日至2012年12月1日(英国日期格式)。我运行以下宏: Sub FindDate() Range("C6:Z6").Select Selection.Find(What:="01/08/2012", After:=ActiveCell, LookIn:=xlFormulas _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDi
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)。当您仅搜索“01/08/2012”时,实际上是在搜索字符串。您必须使用
CDate
将其转换为日期
此外,最好使用检查是否找到任何内容,如果没有,则使用检查aCell is Nothing,以避免出现任何错误。请看我在这里的帖子
试试这个
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
你也可以使用worksheetfunction.match(…)来完成。太好了,它可以工作了!虽然我发现我不得不将SearchOrder改为'xlByColumns',并将After设置为'Range(“C6”)',以避免出现错误。