powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поиск даты с помощью VBA
12 сообщений из 12, страница 1 из 1
Поиск даты с помощью VBA
    #37886430
Feanaro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток.
На листе имеется лента с датами, полученными с помощью формул. В коде необходимо узнать номер стобца искомой даты. Тестовый код:
Код: vbnet
1.
Cells.Find(DateValue("01.04.2012"), LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False).Column


возвращает ошибку 91 'Object Variable or With block variable not set'.
Искомая тестовая дата имеется на листе. По форумам посмотрел, имеется нюанс с форматом дат, поэтому использовал DateValue(). Но код, тем не менее, не работает.
Подскажите, подалуйста, как можно поступить в данном случае?
...
Рейтинг: 0 / 0
Поиск даты с помощью VBA
    #37886567
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim MyDate As Date, rFndRng As Object
MyDate = "01.04.2012"

With ActiveSheet

    Set rFndRng = .UsedRange.Find(MyDate, , xlValues, xlWhole)
    
    If Not rFndRng Is Nothing Then
        .Activate: rFndRng.Activate
    Else
        MsgBox "Дата " & MyDate & " не найдена ", vbInformation
    End If
    
End With
...
Рейтинг: 0 / 0
Поиск даты с помощью VBA
    #37886913
Feanaro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TpaBka, не выходит.
...
Рейтинг: 0 / 0
Поиск даты с помощью VBA
    #37886928
Feanaro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пишет:"Subscript out of Range". Сама дата все также на листе присутсвует, но VBA в упор не находит её.
...
Рейтинг: 0 / 0
Поиск даты с помощью VBA
    #37886972
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему тогда у меня находит?
Попробуй тогда
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Dim MyDate As Date, rFndRng As Object
MyDate = "01.04.2012"

With ActiveSheet

    Set rFndRng = .Range(Cells(1, 1), Cells(Rows.Count, Columns.Count)).Find(MyDate, , xlValues, xlWhole)
    
    If Not rFndRng Is Nothing Then
        .Activate: rFndRng.Activate
    Else
        MsgBox "Дата " & MyDate & " не найдена ", vbInformation
    End If
    
End With
...
Рейтинг: 0 / 0
Поиск даты с помощью VBA
    #37887015
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TpaBka
> А почему тогда у меня находит?

А потому что дата в ячейках в формате по умолчанию. Попробуй поменять формат ячеек хотя бы на ДД.ММ.ГГ - и не найдет!
Я в свое время пробовал и так и эдак - не получилось. С тех пор ищу дату перебором в массиве.
...
Рейтинг: 0 / 0
Поиск даты с помощью VBA
    #37887031
Казанский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На Вашем примере так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Sub Макрос1()
Dim MyDate As Date, rFndRng As Object, i&, x
MyDate = "01.04.2012"

With ActiveSheet.UsedRange.Columns(1)
    For Each x In .Value
        i = i + 1
        If x = MyDate Then
            Set rFndRng = .Cells(i)
            rFndRng.Activate
            Exit Sub
        End If
    Next
End With
MsgBox "Дата " & MyDate & " не найдена ", vbInformation
End Sub
...
Рейтинг: 0 / 0
Поиск даты с помощью VBA
    #37887056
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КазанскийTpaBka
> А почему тогда у меня находит?

А потому что дата в ячейках в формате по умолчанию. Попробуй поменять формат ячеек хотя бы на ДД.ММ.ГГ - и не найдет!
Я в свое время пробовал и так и эдак - не получилось. С тех пор ищу дату перебором в массиве.

Дело не в формате, если бы не нашло нужную дату, то было бы сообщение.
А так вываливается ошибка
...
Рейтинг: 0 / 0
Поиск даты с помощью VBA
    #37887065
Feanaro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
'Subscript out...' перестал вываливаться. ВЫлетает с ошибкой, означенной в стартовом посте. Я ее получал в методе Find, когда он не находил требуемые данные. Но фишка-то в том, что они там есть =/
...
Рейтинг: 0 / 0
Поиск даты с помощью VBA
    #37887091
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а в моем файле находит?
12893232

З.Ы.
Прислушайся к совету Казанский
12893363
...
Рейтинг: 0 / 0
Поиск даты с помощью VBA
    #37887104
Feanaro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TpaBka, у тебя находит. Пробую приделать какие-нибудь костылики, потом попробую то, что Казанский посоветовал.
...
Рейтинг: 0 / 0
Поиск даты с помощью VBA
    #37887174
Feanaro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сделал как посоветовал Казанский (с необходимыми мне модификациями). заработало. Большое спасибо.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поиск даты с помощью VBA
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]