0

我已经尝试了这个网站上的建议,但似乎没有一个有效。

在单元格 C6:Z6 中,我的日期为 2011 年 1 月 1 日至 2012 年 1 月 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。我尝试使用“设置”来设置范围,但也没有这样做。

对于上下文,我正在尝试获取预设日期的列号(使用 ActiveCell.Column)。

4

1 回答 1

1

当您简单地搜索“01/08/2012”时,您实际上是在搜索一个字符串。您必须使用 将其转换为日期CDate

此外,最好检查是否找到任何东西If Not aCell Is Nothing Then以避免任何错误。请参阅此链接中的我的帖子。

试试这个

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
于 2012-08-16T09:49:21.633 回答