Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2015, 15:46   #1
ac1-caesar
Форумчанин
 
Регистрация: 26.07.2013
Сообщений: 134
По умолчанию Поиск значения по дате

Подскажите пожалуйста как сделать поиск значения по дате.
Т.е. первая колонка - даты, во второй колонке нужно найти значение по выбранной дате.
Для таблицы с внесенными датами в первой колонке этот вариант работает.
Код:
Sub test()
 
Dim dt As Date
Dim SelectedDate As Range
Dim значение As Variant
 
With ThisWorkbook.Sheets("Лист2")
    dt = CDate("09.01.2013")
    Set SelectedDate = .Range("Таблица2[DATE]").Find(dt)
    If Not SelectedDate Is Nothing Then
        значение = SelectedDate.Offset(, 1)
        MsgBox значение
    End If
End With
End Sub
Однако для таблицы с датами по ссылке из другой таблицы такой вариант не работает.
Что изменить или добавить в коде?

Есть развитие темы здесь
Вложения
Тип файла: rar Пример.rar (17.3 Кб, 15 просмотров)
ac1-caesar вне форума Ответить с цитированием
Старый 17.12.2015, 13:21   #2
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

можно через массив...
D1 ЛКМ два раза, откроется календарь
Пример на листе2
Вложения
Тип файла: rar Пример.rar (67.1 Кб, 13 просмотров)
Единственный способ стать умнее, играть с более умным противником...

Последний раз редактировалось staniiislav; 17.12.2015 в 13:24.
staniiislav вне форума Ответить с цитированием
Старый 17.12.2015, 15:12   #3
staniiislav
Форумчанин
 
Аватар для staniiislav
 
Регистрация: 16.04.2010
Сообщений: 695
По умолчанию

можно так:
Код:
Sub FindDate_2()

Dim rn As Range, lsRow_2 As Long, dDate As String, i As Long, nn As Object, x As String
lsRow_2 = Cells(Rows.Count, 1).End(xlUp).Row
Set rn = ThisWorkbook.Sheets("Лист2").Range("A2:A" & lsRow_2)
dDate = Range("D1").Value
With rn
    For Each nn In .Cells
        If nn = dDate Then
            x = Cells(nn.Row, 2).Value
            MsgBox x
        End If
    Next
End With
End Sub
а вообще еще много вариантов...
Единственный способ стать умнее, играть с более умным противником...
staniiislav вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск значения по дате и доп.полю. WIC Microsoft Office Excel 4 02.09.2013 15:59
MSSQL Как вывести значения по сегодняшней дате KARTOH SQL, базы данных 7 24.06.2011 18:56
Поиск по дате Len@09 БД в Delphi 6 12.02.2010 15:01
поиск максимального значения по дате Vorchun Microsoft Office Excel 2 17.01.2010 17:41
Суммировать значения по дате gavrylyuk Microsoft Office Excel 4 21.07.2008 12:52