当我可以使用工作簿的PrintPreview()时显示Com错误800a03ec的消息
m_spWorkbook->PrintPreview();
我在以下代码中获得了m_spWorkbook:
hr = spOleObject->QueryInterface(__uuidof(_Workbook), (void**)&m_spWorkbook);
问题是什么?
答案 0 :(得分:1)
异常800a03ec通常意味着区域设置问题。例如,Excel中的语言与区域设置不同。看看这些链接:
正如我从您的其他问题中所理解的,HRESULT 0x800a03ec throw可能与Excel实例相关。也许,当你正在调用printPreview
时,应用程序已经关闭,或者你正在尝试在Excel实例中创建额外的Excel实例或用户编辑
答案 1 :(得分:0)
我不确定,但这可能与安全权限有关。我的预感是(我没有特别测试过),PrintPreview
内部使用宏函数或试图访问VBA项目模型;如果宏安全性设置为默认级别(或更高级别!),则可以拒绝其中任何一种。
尝试为VBA宏“启用所有宏”安全级别,看看是否能解决问题。如果是,那么您可能希望拥有一个签名的应用程序,其证书在生产环境中受VBA信任。或者,您可以降低所有相关计算机的VBA安全性,但当然不建议这样做。