gpt4 book ai didi

vba - 如何打开(并保存)Word文档中的所有嵌入式文档?

转载 作者:行者123 更新时间:2023-12-03 07:54:47 25 4
gpt4 key购买 nike

我希望编写VBA以将嵌入式文件保存在Word文档中。但是我在打开它们时遇到了问题:

Sub Extract()

Dim num as Integer

Dim numObjects As Integer
numObjects = ActiveDocument.InlineShapes.count

MsgBox numObjects ' prints "11"

For num = 1 To numObjects
If ActiveDocument.InlineShapes(num).Type = 1 Then
'it's an embedded OLE type so open it.
ActiveDocument.InlineShapes(num).OLEFormat.Open

'Works for the first one but errors 5941 (the requested
' member of the collection does not exist)
End If
Next num

End Sub

如果尚未打开,则此代码将打开第一个嵌入式文件。下一个错误。

或者,如果第一个文件已经打开,则宏似乎什么也不做。

有什么提示吗? (我正在使用Word 2010进行此操作。)

最佳答案

答案似乎很容易-打开第一个嵌入式文件后,该文件将成为 Activity 文件,然后当您尝试打开下一个嵌入式对象时,您指的是 Activity 文件,而不是所需文件。用这种方式尝试对象变量:

Sub Extract()

Dim num as Integer
Dim AD as document
Set AD = activedocument

Dim numObjects As Integer
numObjects = AD.InlineShapes.count

MsgBox numObjects ' prints "11"

For num = 1 To numObjects
If AD.InlineShapes(num).Type = 1 Then
'it's an embedded OLE type so open it.
AD.InlineShapes(num).OLEFormat.Open

End If
Next num

End Sub

关于vba - 如何打开(并保存)Word文档中的所有嵌入式文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22584295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com