Проблемы с .find и датой в разных приложениях / экземплярах Excel - PullRequest
0 голосов
/ 09 февраля 2020

Надеюсь, у кого-то может быть ключ к разгадке, если я могу что-то сделать, чтобы обойти проблему, с которой я столкнулся. Может быть трудно добавить код, который я использую, так как он очень большой.

У меня есть таблица с календарными датами в первом столбце. Все они в формате дд / мм / гггг. В VBA я хочу найти дату и найти номер строки в календаре, используя следующее:

FirstRow = Workbooks(WorkbookSelected.Name).Sheets("Tables").Columns(1).Find(ConfirmedDate, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, LookAt:=xlWhole).Row

Подтвержденная дата сохраняется как переменная даты, взятая из календаря. также, но к этому добавляются дни. Я ищу в двух разных книгах, чтобы найти FirstRow. Если обе книги находятся в одном приложении / экземпляре Excel, тогда этот код работает нормально.

Но если я открою вторую книгу в новом экземпляре Excel, произойдет ошибка, потому что дата не найдена. Что-то происходит с датой во 2-м приложении. Если я использую format(ConfirmedDate, "dd/mm/yyyy"), он найдет его во 2-й книге. Но этот код не будет работать в оригинальной книге. Код, аналогичный приведенному выше, но просто ссылка на экземпляр Excel, который необходимо изучить. Я получаю ошибку времени выполнения 91, когда он не находит ее.

FirstRow = ExcelInstanceSelected.Workbooks(WorkbookSelected.Name).Sheets("Tables").Columns(1).Find(ConfirmedDate, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, LookAt:=xlWhole).Row

FirstRow = ExcelInstanceSelected2.Workbooks(2ndWorkbookSelected.Name).Sheets("Tables").Columns(1).Find(ConfirmedDate, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, LookAt:=xlWhole).Row

Я пытаюсь найти способ найти дату в календаре независимо от того, какое приложение Excel я использую. Я попытался открыть книгу с локальным значением true (не помогает). Я пробовал комбинации форматов, cdate, cdbl, lookin: = xlformulas. Ничто не будет работать с обеими книгами.

Это сводит меня с ума. Я могу только предположить, что .find во 2-й рабочей книге изменяет формат сохраненной ConfirmedDate на американский формат m / dd / yyyy. Я просто не могу найти способ убедиться, что обе даты могут быть отформатированы в dd / mm / yyyy относительно того, как они начинаются.

Большое спасибо за любую помощь.

Cel

...