При запуске метода Excel range.find из модуля Access vba происходит сбой / ошибка - PullRequest
0 голосов
/ 31 мая 2018

Win10x64, офис 365 x64 Я использую макрос Access.Я открываю книгу Excel и затем нахожу последнюю непустую ячейку или первую непустую ячейку.Все константы определены так:

xlPart = 2
xlFormulas = -4123
xlByRows = 1
xlNext = 1

ws - объект рабочего листа.Я могу выбрать и активировать рабочий лист и диапазон без ошибок, например, эти строки работают нормально

ws.Activate
ws.select
ws.Cells(1, 1).select
ws.Cells(1, 1).Activate

Когда я запускаю этот код, я получаю Run-time error '9': Subscript out of range. ошибку

Set rFound = ws.Cells.Find("*", ws.Cells(1, 1), _
                    xlPart, _
                    xlFormulas, _
                    xlByRows, _
                    xlNext, _
                    False)

Но если язапустите этот код, он работает нормально:

Set rFound = ws.Cells.Find("*", ws.Cells(1, 1))

Как передать параметры из Access VBA в метод Excel Range.Find. Пожалуйста, не предлагайте другие методы поиска непустых ячеек , я делаю это для завершения этой БД, но, пожалуйста, попробуйте ответить на вопрос о том, как заставить этот конкретный метод работать из Access.

Спасибо

1 Ответ

0 голосов
/ 31 мая 2018

Я думаю, что порядок ваших параметров неправильный - это имеет значение только тогда, когда вы не используете именованные параметры (как в вашем примере).Я полагаю, это потому, что у вас нет ссылки на Excel?

В любом случае вы проверяли неявный порядок параметров, чтобы убедиться, что они в правильном порядке?

По умолчанию заказ определен как:

expression.Find( What , After , LookIn , LookAt , SearchOrder , SearchDirection , MatchCase , MatchByte , SearchFormat )

Похоже, у вас LookIn после LookAt

Попробуйте изменить его на:

Set rFound = ws.Cells.Find("*", ws.Cells(1, 1), _                        
                    xlFormulas, xlPart, _
                    xlByRows, xlNext, False)

Для справки

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