Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从excel中打开两个现有word文件_Excel_Vba_Ms Word - Fatal编程技术网

从excel中打开两个现有word文件

从excel中打开两个现有word文件,excel,vba,ms-word,Excel,Vba,Ms Word,您好,我正试图编写代码来使用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 = Create

您好,我正试图编写代码来使用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

在我这方面,它似乎工作得很好,尽管有点慢,至少在将文件路径写入单元格A1和A2时是这样。除此之外,我们还需要更多地了解您的代码

根据您试图使用Word对象完成的操作,OLE问题可能源于引用中的冲突,请确保检查所引用的库(工具/引用…)是否存在任何可能的冲突

另一个可能的冲突可能是使用单词“word”作为对象的变量名。Word也是一个关键字名称。使用Microsoft 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问题


希望这能为你指明正确的方向,如果有什么的话,更多的信息可能有助于缩小问题的范围

现在效果更好了,我在GetOpenFilename中指定了word文件,但之后仍然会遇到OLE错误。我承认我不熟悉
GetOpenFilename()
,但您在打开word文档之前调用它。这不会将StdSpec设置为当时打开的文件名吗?如果在打开单词doc后将StdSpec=…移动到行中,会怎么样?嗨,AlSkylark。我没有像您所说的那样添加MS Word对象库,现在它可以工作了。代码的其余部分正在进行中,但如果excel工作表中满足条件,则需要将文本从一个word文件中的书签复制到另一个word文件中。谢谢你的帮助