Ошибка COM 800a03ec при вызове метода книги PrintPreview () - PullRequest
0 голосов
/ 21 марта 2011

Показать сообщение об ошибке Com 800a03ec, когда я могу PrintPreview () рабочей книги

m_spWorkbook->PrintPreview();

я получаю m_spWorkbook в следующем коде:

hr = spOleObject->QueryInterface(__uuidof(_Workbook), (void**)&m_spWorkbook);

в чем проблема?

Ответы [ 2 ]

1 голос
/ 24 марта 2011

Исключение 800a03ec часто означает проблему с локалью. Например, язык в Excel отличается от региональных настроек. Посмотрите эти ссылки:


Как я понял из вашего другого вопроса, метание HRESULT 0x800a03ec может быть связано с экземплярами Excel. Возможно, в тот момент, когда вы звоните printPreview приложение уже закрыто или вы пытаетесь создать дополнительный экземпляр Excel или пользовательское редактирование в вашем экземпляре Excel

0 голосов
/ 21 марта 2011

Я не уверен, но это может иметь отношение к разрешениям безопасности.Я догадывался (я не проверял это специально), что PrintPreview внутренне использует макрофункции или пытается получить доступ к модели проекта VBA;любой из которых может быть отклонен, если защита макроса установлена ​​на уровень по умолчанию (или выше!).

Попробуйте задать уровень безопасности VBA Macros «Включить все макросы», чтобы проверить, решает ли это проблему.Если это произойдет, вы, вероятно, захотите иметь подписанное приложение, сертификат которого доверен VBA в производственной среде.Или вы можете снизить безопасность VBA на всех задействованных компьютерах, но, конечно, это вообще не рекомендуется.

...