我已经有一个Excel中的宏,通过从特定的表,行和列中的数据在指定的Word文档中提取,并将其返回到我的Excel S/工作表中的单元格。我需要做2修改代码,但我的知识还不够先进。
1.我需要在指定文件夹中的多个Word文档上运行此代码,无论是.doc还是.docx
1.我需要建立为什么在一些Word文档,代码无法通过从Word文档的数据拉,我得到运行时错误代码“4605”“该方法或属性不可用,因为没有选择文本”.我试着把,“在错误恢复下一个”,在模块的开始,所以它一直运行到最后,希望一些文本会被拉,但Excel/工作表中的单元格仍然没有填充。
Sub ImportFromWord()
On Error Resume Next
'Activate Word Object Library
Dim WordDoc As Word.Document
Set WordApp = CreateObject("word.application") ' Open Word session
WordApp.Visible = False 'keep word invisible
Set WordDoc = WordApp.Documents.Open("C:\Users\brendan.ramsey\OneDrive - Ofcom\Objectives\Brendan's Objectives 2022-23\Licence calls\test 2.docx") ' open Word file
'copy third row of first Word table
WordDoc.Tables(1).Cell(Row:=1, Column:=3).Range.Copy
'paste in Excel
Range("A3").PasteSpecial xlPasteValues
WordDoc.Tables(4).Cell(Row:=3, Column:=6).Range.Copy
Range("B3").PasteSpecial xlPasteValues
WordDoc.Tables(4).Cell(Row:=3, Column:=3).Range.Copy
Range("C3").PasteSpecial xlPasteValues
WordDoc.Tables(5).Cell(Row:=2, Column:=5).Range.Copy
Range("D3").PasteSpecial xlPasteValues
WordDoc.Tables(5).Cell(Row:=2, Column:=7).Range.Copy
Range("E3").PasteSpecial xlPasteValues
WordDoc.Tables(5).Cell(Row:=2, Column:=2).Range.Copy
Range("F3").PasteSpecial xlPasteValues
WordDoc.Close 'close Word doc
WordApp.Quit ' close Word
End Sub
2条答案
按热度按时间holgip5t1#
如果避免直接复制/粘贴和传输单元格内容,代码的表现可能会更好:
1aaf6o9v2#
运行时错误代码“4605”“由于未选择文本,该方法或属性不可用”。
运行时代码4605发生时,Microsoft Word失败或崩溃,而它的运行。这并不一定意味着代码已损坏在某种程度上,但只是它没有工作,在其运行时。这种错误将出现在您的屏幕上恼人的通知,除非处理和更正。以下是症状,原因和方法来解决该问题。
因为错误信息显示没有选择文本。要找出哪个属性或方法给出了错误信息,我建议在单独的一行代码中声明每个属性或方法调用,从而中断单行代码中的调用链,这样您就可以确切地知道哪个调用失败了。