【问题标题】:VBA Word Find/Paragraph CopyVBA 单词查找/段落复制
【发布时间】:2015-07-09 16:17:48
【问题描述】:

当前我正在尝试打开一个 word 文档,查找某个单词(在本例中为“描述”),然后转到下面两行并复制它下面的段落。

代码如下:

Sub getTextFromWord()

Dim WordApp As Object, WordDoc As Object

file = "C:\filepath\Document.docx"
Set WordApp = CreateObject("Word.Application")
WordApp.Visible = False
Set WordDoc = WordApp.Documents.Open(file)

With Selection.Find
    .Forward = True
    .Wrap = wdFindStop
    .Text = "Description"
    .Execute
End With

'Selection.MoveDown Unit:=wdLine, Count:=2
'Selection.StartOf Unit:=wdParagraph
'Selection.MoveEnd Unit:=wdParagraph
'Selection.Copy
'Range("A1").PasteSpecial

WordDoc.Close
WordApp.Quit
Set WordDoc = Nothing
Set WordApp = Nothing

End Sub

当我尝试运行它时(当前的 Selection.MoveDown 部分已注释掉),我收到 450 错误或 Excel 弹出“Microsoft Excel 正在等待另一个应用程序完成 OLE 操作”。任何帮助将不胜感激。

我试图复制的文档的格式基本上是:

日期:2015 年 7 月 9 日

说明

这是一般描述。今天是 2015 年 7 月 9 日,这是我的一般描述等。

【问题讨论】:

    标签: excel vba ms-word


    【解决方案1】:

    我相信,我可能不正确,您可以简单地取消警报,代码将自行完成。

    为此,添加 Application.DisplayAlerts = False 在子程序的开头。

    别忘了添加 Application.DisplayAlerts = True 在子程序的末尾重新打开它。

    当 Excel 将控制权交给 Word 并且没有很快得到响应时,似乎会出现此消息,但我相信代码仍应执行。

    【讨论】:

    • 感谢 Joshua 的回复,但是当我这样做时,似乎程序只是无限期地运行。
    猜你喜欢
    • 2020-08-18
    • 1970-01-01
    • 2013-12-19
    • 1970-01-01
    • 2013-04-12
    • 2021-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多