使用Excel查找功能继续获取错误91

时间:2012-08-16 09:35:19

标签: excel-vba excel-2007 runtime-error vba excel

我已尝试过本网站上的建议,但似乎都没有。

在单元格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)。

1 个答案:

答案 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