嗨,我正在尝试编写代码以使用excel与两个现有的word文档一起工作,但是我一直收到OLE错误。这只是开始,但一直崩溃。我在做什么错了?
Sub BoQtoWord()
Dim Word As Object
Dim WordDoc As Object
Dim WordDoc1 As Object
Dim StdSpec As String
Dim NewSpec As String
StdSpec = Application.GetOpenFilename()
Set Word = CreateObject("Word.Application")
Set WordDoc = Word.Documents.Open(StdSpec)
Sheet1.Range ("A1").Value = StdSpec
NewSpec = Application.GetOpenFilename()
Set WordDoc1 = Word.Documents.Open(NewSpec)
Sheet1.Range("A2").Value = NewSpec
End Sub
答案 0 :(得分:0)
这似乎很正常,尽管有点慢,至少就将文件路径写入单元格A1和A2而言。除此之外,我们还需要查看更多代码。
根据您试图用Word对象完成的操作,OLE问题可能源于引用中的冲突,请确保检查所引用的库(工具/参考...)是否存在任何可能的冲突。 / p>
另一个可能的冲突可能是使用单词“ Word”作为对象的变量名。使用Microsoft Word库时,Word也是键名,请尝试使用其他名称,看是否有帮助。
说到这,通过将Microsoft Word库添加到引用中,您可以跳过创建word对象的步骤,而可以直接创建word.document对象,如下所示:
Sub BoQtoWord()
Dim WordDoc As Word.Document
Dim WordDoc1 As Word.Document
Dim StdSpec As String
Dim NewSpec As String
'Get first doc
StdSpec = Application.GetOpenFilename()
Set WordDoc = Documents.Open(StdSpec)
Sheet1.Range("A1").Value = StdSpec
'Get second doc
NewSpec = Application.GetOpenFilename()
Set WordDoc1 = Documents.Open(NewSpec)
Sheet1.Range("A2").Value = NewSpec
'Do something with the documents opened
End Sub
也许可以解决您的OLE问题。
希望这会为您指明正确的方向,如果有的话,更多的信息可能有助于缩小问题的范围!