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 に答える