Продолжайте получать ошибку 91 с функцией поиска Excel

excel-vba excel-2007 runtime-error vba excel

6166 просмотра

1 ответ

113 Репутация автора

Я попробовал предложения на этом сайте, но ни один из них не работает.

В ячейках C6: Z6 у меня есть даты с 01.01.2011 по 01.01.2012 (в британском формате даты). Я запускаю следующий макрос:

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).

Автор: Sputnik Источник Размещён: 16.08.2012 09:35

Ответы (1)


1 плюс

123244 Репутация автора

Решение

Когда вы просто ищете «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
Автор: Siddharth Rout Размещён: 16.08.2012 09:49
Вопросы из категории :
32x32