Найти ячейку на основе даты в Excel VBA - PullRequest
0 голосов
/ 11 марта 2019

У меня есть файл с несколькими столбцами, в том числе один с датами, а другой с некоторыми целыми числами.

Я хочу получить номер строки ячейки на основе ее даты. Поэтому в столбце B я хочу получить номер строки ячейки, содержащей дату 31 декабря 2018 года. Формат отображения в рабочей книге - «31 декабря 2018 года», и при щелчке по ячейке он отображает 31.12.2008. Я пытался использовать

ActiveSheet.Range("B3:B500").Find(What:=CDate("Dec. 31, 2018")).Activate

и

ActiveSheet.Range("B3:B500").Find(What:=12/31/2016).Activate

Но ни одна из них не работает, так как я получаю сообщение об ошибке «Переменная объекта не установлена»). Я много гуглил и не мог найти подходящее решение, которое активирует соответствующую ячейку. Что не так с моим подходом?

1 Ответ

2 голосов
/ 11 марта 2019

Это похоже на работу:

Sub dural2()
    Dim lDate As Date, r As Range
    lDate = DateSerial(2018, 12, 31)
    Set r = ActiveSheet.Range("B3:B500").Find(What:=lDate)
    r.Select
End Sub

enter image description here

Просто убедитесь, что данные в столбце B являются реальными датами Excel, а не текстовыми значениями, которые напоминают даты.
Создание диапазона с использованием FIND() позволит вам проверить его перед Вы пытаетесь Select это и ловите любые ошибки самостоятельно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...