Excel Office 365 версии 1902 (сборка 11328.20420)
Когда два объекта рабочей книги создаются и устанавливаются в разные файлы Excel (с помощью Application.Workbooks.Open), ссылка на объект второй рабочей книги каким-то образом перезаписывается и указывает напервый файл.
Я столкнулся с этой проблемой, когда переписывал код в существующем приложении для работы с электронными таблицами. Новый код открывает два файла Excel одновременно, устанавливая каждый объект книги Excel в файл. При первом запуске метода ожидаемое поведение демонстрируется. Два объекта указывают на свои соответствующие файлы. При втором и последующих запусках первый объект кажется перезаписанным вторым объектом, и оба объекта указывают на один и тот же файл. Я воссоздал это в тестовом методе, см. Ниже.
Option Explicit
Sub Main()
On Error GoTo err_handler
Dim Book1 As Workbook
Dim Book2 As Workbook
Set Book1 = Application.Workbooks.Open("C:\Test\Book1.xlsx")
Set Book2 = Application.Workbooks.Open("C:\Test\Book2.xlsx")
Debug.Print Book1.Name
Debug.Print Book2.Name
Exit Sub
err_handler:
MsgBox Err.Description
End Sub
Код выдает этот набор результатов
Прогон 1:
Book1.xlsx
Book2.xlsx
Прогон 2:
Book2.xlsx
Book2.xlsx
Эта проблемаотносится только к Office 365. Я тестировал тот же код в Office 2016, и проблем нет.
Результаты Office 2016:
Выполнение 1:
Book1. xlsx
Book2.xlsx
Прогон 2:
Book1.xlsx
Book2.xlsx
Это известная проблема, которая была исправлена в более поздних версиях Office 365 или что-то новое?
РЕДАКТИРОВАТЬ
Еще не объяснено, почему это поведение характерно для Excel 365Предыдущий ответ не объясняет, почему это происходит, он просто указывает на то, что непредсказуемое поведение может возникнуть при открытии открытых рабочих книг. Я не видел такого же поведения при запуске кода с использованием Excel 2016 (не Office 365)
Большое спасибо,
Simon.