发布
社区首页 >问答首页 >Word 2010模板加载期间的“对象错误”

Word 2010模板加载期间的“对象错误”
EN

Stack Overflow用户
提问于 2014-04-14 05:43:55
回答 2查看 510关注 0票数 1

我们最近从2003年升级到2010年办公室。2003年运行良好的VBScript类型代码在2010年断断续续地失败,“对象错误”或“命令失败”。

从我的计算结果来看,这似乎是正常模板仍然在下载/加载的结果,尽管CreateObject调用已经完成。当代码正常工作时,看起来正常情况下加载得很快。

代码:

代码语言:javascript
代码运行次数:0
复制
Dim oWord As Object
Set oWord = CreateObject("Word.Application")
oWord.Visible = True
Set document = oWord.Documents.Open("\\networkshare\networkshare\mytemplate.dot")

代码在"Set document =“上失败

我一直在寻找解决这个问题的方法,但是我没有在其他地方发现有这个问题的人的任何踪迹。如果我在oWord.Visible和Set文档之间插入延迟,问题就解决了。不过,我倾向于正确地解决这个问题,因为我们经常一次处理数百个文档。我试图检测正常的装车完成,但在这方面没有成功。

还有人看到这个问题并找到解决办法了吗?

非常感谢

菲利普

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-14 06:12:27

也许你应该尝试“抓取”一个单词对象,然后再创建它。

代码语言:javascript
代码运行次数:0
复制
Dim oWord As Object
On Error Resume Next
Set oWord = GetObject(,"Word.Application")
If oWord Is Nothing Then Set oWord = CreateObject("Word.Application")

或者,禁用警报,并将oWord.Documents.Open放入循环中。在打开.dot模板之间或直到打开时再等待几次,然后重新启用警报。

因为它是在网络共享上,所以延迟很可能比本地存储设备高。这或许可以解释为什么如果等待有效。

根据.dot模板的操作,您可能希望它在打开后可见。

票数 0
EN

Stack Overflow用户

发布于 2014-04-17 04:31:01

用于解决此问题的代码:

代码语言:javascript
代码运行次数:0
复制
Set oWord = CreateObject("Word.Application")
On Error Resume Next
Set oDoc = Nothing
Do While oDoc Is Nothing
Set oDoc = oWord.Documents.Open([template path])
<Wait 50ms>
Loop On Error Goto 0

不讨论主题,但对于其他有此问题的人是有用的:截至Word 2010,ActivePrinter属性现在是区分大小写的,因此您必须确保大写化与打印机对话框中显示的相同。设置此属性失败时生成的错误词2010是"Microsoft Word:存在打印机错误“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23052759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档