不打开word文档
我试图用Excel打开一个Word文档,使用VBA。下面是代码:不打开word文档
Sub Openuserguiddoc()
'Open an existing Word Document from Excel
Dim objWord As Object
Set objWord = CreateObject("User Guide to VR Referrals.docx")
objWord.Visible = True
Documents.Open "N:\MHBS\Education and Employment\VR Reports\VRU REFERALS\Past Years Referrals\User Guide to VR Referrals.docx"
End Sub
它Set objWord = CreateObject("User Guide to VR Referrals.docx")
挂断。 但是对于我的生活,我无法弄清楚什么是错的。有任何想法吗?
OK,你也可以尝试它没有迟到的约束,因为我们似乎在这里遇到麻烦。
在VBA编辑器中,转到工具然后引用:
,然后标出的Microsoft Word列表(版本号可能会有所不同)
然后用这个代码:
Sub Openuserguiddoc()
'Open an existing Word Document from Excel
Dim objWord As Word.Application
Set objWord = New Word.Application
objWord.Visible = True
objWord.Documents.Open "N:\MHBS\Education and Employment\VR Reports\VRU REFERALS\Past Years Referrals\User Guide to VR Referrals.docx"
End Sub
让我们知道你如何继续!
完全按照计划工作。谢谢大家的帮助。安德鲁,你的非迟到的指导非常简洁,易于遵循。 –
Dim objWord As Object
Dim objDoc As Object
Set objWord = CreateObject(“Word.Application”)
Set objDoc = objWord.Documents.Open "N:\MHBS\Education and Employment\VR Reports\VRU REFERALS\Past Years Referrals\User Guide to VR Referrals.docx"
我已经尝试过发布的建议,并且已经挂断了各个位置。整个路径是'N:\ MHBS \ Education and Employment \ VR Reports \ VRU Reflections \ Past Years Referrals \ VR Guide Reference .docx用户指南“。我没有提及代码错误**运行时错误429.活动X组件不能创建对象。**用户没有对文档进行任何更改,只是阅读。 –
我做了ASH建议的变化,没有任何反应。我可能错过了一些东西。这里是现在编写的代码:'Sub Openuserguiddoc() '从Excel打开现有的Word文档 Dim objWord As Object Set objWord = CreateObject(“N:\ MHBS \ Education and Employment \ VR Reports \ VRU REFERALS \ Past Years Referrals \ VR Referrals.docx的用户指南“) objWord.Application.Visible = True End Sub'。 –
CreateObject("")
用于创建命名对象,如Word.Application,不用于打开文件。尝试CreateObject("Word.Application")
你也可能要改变Documents.Open
到objWord.Documents.Open
,因为如果你要创建一个拥有创建对象的对象,它通常是因为你还没有做对它的引用,使Excel中完全不认识什么Document
对象或的确,但是objWord
呢。
此外,当您打开此文档时,如果您想使用VBA对其进行操作,您需要set
另一个对象链接到它,并且您通过在文档的前面添加set
声明来执行此操作。打开语句,在大致相同的方式,你就与CreateObject
这些少量的修改应当解决这个问题:
1提供的文件的完整路径,如:
Set objWord = CreateObject("N:\MHBS\Education and Employment\VR Reports\VRU REFERALS\Past Years Referrals\User Guide to VR Referrals.docx")
但是然后您的对象是Word.Document
类型,而不是Word.Application。
2至使其可见,您需要:
objWord.Application.Visible = True
3-以后你在Word中打开另一个文件,所以用这个词Apllication对象
Set newDoc = objWord.Aplication.Documents.Open("N:\MHBS\Education and Employment\VR Reports\VRU REFERALS\Past Years Referrals\User Guide to VR Referrals.docx")
这个事实证明,这让我在微软中失望了。这是如何强制逻辑对象创建的?任何查看代码的人都不会知道对象将被设置为什么,这只是不好的编码练习 –
@AndrewWynn我不是MS员工,所以我不会参加战争来捍卫他们的选择。但是他们为了方便起见,就像在点击资源管理器中的指定文档时不需要指定应用程序一样,因为信息在注册表中可用。另外请记住,OP也选择了'late-binding',所以这是他们的选择,以“猜测”产生的对象是什么... –
我不会对你感到恼怒,而且我很抱歉,如果它看起来像但是,VBA是一种入门级语言,因此为了方便而添加这种功能对用户来说非常有用,但是如果他们继续编写其他人必须调试的代码,那么可怕程度会很高。 –
也许你需要提供完整的路径? –
不,他应该提供“Word.Application”作为参数给CreateObject – z32a7ul
@ z32a7ul nope,此方法也适用。 –