当我调用工作簿的PrintPreview()方法时,Com错误800a03ec

时间:2011-03-21 11:35:35

标签: c++ excel com ole

当我可以使用工作簿的PrintPreview()时显示Com错误800a03ec的消息

m_spWorkbook->PrintPreview();

我在以下代码中获得了m_spWorkbook:

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

问题是什么?

2 个答案:

答案 0 :(得分:1)

异常800a03ec通常意味着区域设置问题。例如,Excel中的语言与区域设置不同。看看这些链接:


正如我从您的其他问题中所理解的,HRESULT 0x800a03ec throw可能与Excel实例相关。也许,当你正在调用printPreview时,应用程序已经关闭,或者你正在尝试在Excel实例中创建额外的Excel实例或用户编辑

答案 1 :(得分:0)

我不确定,但这可能与安全权限有关。我的预感是(我没有特别测试过),PrintPreview内部使用宏函数或试图访问VBA项目模型;如果宏安全性设置为默认级别(或更高级别!),则可以拒绝其中任何一种。

尝试为VBA宏“启用所有宏”安全级别,看看是否能解决问题。如果是,那么您可能希望拥有一个签名的应用程序,其证书在生产环境中受VBA信任。或者,您可以降低所有相关计算机的VBA安全性,但当然不建议这样做。