2015-04-16 1 views
1

Excel версии 15 (2013), в Windows 8.Excel COM-сервер BUG?

Шаги для воспроизведения:

  1. Программным открытый Excel и XLA файл.
  2. Убедитесь, что нет открытой книги.
  3. Set Excel.Application.Visible = True

Объект Excel сломается и выдает ошибки на последующих COM сообщений.

Если есть рабочая книга, кроме XLA, все работает нормально. Но если XLA является единственной открытой книгой, она терпит неудачу.

Вопрос: Это просто я, или это ошибка сервера COM Excel?

+0

Вы пробовали с другим XLA? –

ответ

1

Похоже, что существует несогласованность между графическим интерфейсом Excel и COM-сервером Excel, представленным в этой версии.

В старых версиях как сервер, так и графический интерфейс вел себя так же, когда была закрыта последняя книга: пустой графический интерфейс (то есть без рабочей книги) оставался видимым, если он был виден непосредственно перед закрытием последней книги ,

Однако такое поведение изменилось в версии 15 (или так), и теперь GUI становится скрытым, когда вы закрываете последнюю книгу, а сервер - нет. Это приводит к тому, что если ваш COM-клиент закрывает последнюю книгу при видимом графическом интерфейсе, сервер не станет ее невидимым и, таким образом, он каким-то образом приобретет несовместимое состояние, чего невозможно достичь из графического интерфейса.

Проблема, похоже, возникла, когда Excel изменил графический интерфейс, поскольку теперь он назначает независимое окно для каждой книги.

Решение заключается в том, чтобы клиент удостоверился, что он закрывает GUI невидимым при закрытии последней открытой книги.

Этот вопрос, кажется, усугубляется, если вы загрузили надстройку. Возможно, что происходит надстройка (и это мое предположение) связано с каким-то скрытым окном, и теперь проблема, которую клиент должен исправить, включает в себя как окно последней книги (теперь закрыто), так и окно, в.