Я поддерживаю приложение Access, которое было в производстве уже много лет, а часть автоматизации Excel перестала работать с обновлением и преобразованием Office 2013 с .mdb на .accdb.Access 2013 VBA автоматизирует Excel, теряющий окна
Базы данных Access содержат ссылку на библиотеку объектов Microsoft Excel 15.0.
объектыпервенствовать объявлены:
Public objXLApp As Excel.Application
Public objXLBook As Excel.Workbook
и установить:
Set objXLBook = GetObject(strReportPath & strTitle & ".xls")
DoEvents
Set objXLApp = objXLBook.Parent
и в этот момент, objXLApp.visible
= ложь. Также, objXLApp.Windows.Count
= 1, что является правильным. Если в ближайшем окне я установил objXLApp.visible
= true, то я потерял свои окна: objXLApp.Windows.Count
= 0, а ссылки на ожидаемое окно возвращают ошибку «Недопустимый интервал».
Выполнение его из файла .mdb приводит к такому же поведению.
Любые идеи?
Коминтерн, опять же, код был написан несколько лет назад кто-то еще, так что, если есть лучший способ, чтобы установить книгу, я открыт для предложений.
HansUp, я могу попробовать ваше предложение. Можете ли вы опубликовать пример? Если это сработает, я отвечу правильно.
Gene, Да, исходные файлы находятся в формате .xls, они не были обновлены до .xlsx.
Коминтерн, код прекращает выполнение в последней строке кода, затем я использую непосредственное окно для проверки значений и изменения свойства видимости и проверки значений снова.
HansUp, который исправил его. Я изменил код на:
Set objXLApp = New Excel.Application
DoEvents
Set objXLBook = objXLApp.Workbooks.Open(strReportPath & strTitle & ".xls")
Если вы разместите ответ, я помету ваше как правильно.
Теперь я просто изменить его везде в коде ...
Есть ли причина, по которой код использует раннее связывание, но открытие рабочей книги, как если бы оно было поздно? – Comintern
Работает ли он правильно, если вы сначала установите 'objXLApp' напрямую, а затем используете его метод« WorkBooks.Open », чтобы открыть файл? – HansUp
Если вы используете офис 2013, ваши листы Excel «.xls» или «xlsx»? – Gene