使用Excel查找函数不断获取错误91

使用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

我在这个网站上尝试过这些建议,但似乎都没有效果

在单元格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, 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”)',以避免出现错误。