MS Word不会取消链接一个文档的字段,但会替换另一个

时间:2017-03-10 15:36:17

标签: vba excel-vba ms-word excel

我有一些VBA代码(在Excel中),它将打开Word文档,断开链接,并将Word文档保存在其他位置。 全部自动化并传输给用户,他们将看到的只是一个文件出现在文件夹中。

我的问题是它适用于以下内容:

Private Sub Button1_Click()

Dim objWord As Object
Dim docWord As Object
Const wdDoNotSaveChanges As Long = 0
Set objWord = CreateObject("Word.Application")
Set docWord = objWord.Documents.Open(ThisWorkbook.Path & "\A folder\Myfile.doc")

objWord.ActiveDocument.Fields.Unlink

objWord.ActiveDocument.SaveAs ThisWorkbook.Path & "\" + Cells(1, 7) + "myfile.doc"

objWord.ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
objWord.Quit

End Sub

但不适用于以下应该在不同的Word文档上执行相同功能的内容:

Private Sub Button2_Click()

Dim objWord As Object
Dim docWord As Object
Const wdDoNotSaveChanges As Long = 0
Set objWord = CreateObject("Word.Application")
Set docWord = objWord.Documents.Open(ThisWorkbook.Path & "\A Folder\Myfile2.doc")

objWord.ActiveDocument.Fields.Unlink

objWord.ActiveDocument.SaveAs ThisWorkbook.Path & "\" + Cells(1, 7) + "MyFile2.doc"

objWord.ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges
objWord.Quit

End Sub

当我打开生成的第一个文档(第一个代码的结果)时,它不会要求我更新链接,链接会按预期被破坏。

当我打开生成的第二个文档(第二个代码的结果)时,它会要求我更新链接。

编辑:

上面的代码的两个部分都已合并并放入一个转发给它的变量的子 - 仍然是一个文档更新和取消链接的相同结果,另一个文档要求用户打开是否要更新链接

所以现在很可能是Word文档的问题。

两个Word文档都通过Paste Special>链接到Excel。粘贴链接。

两者都只链接到一个Excel文档。

我能看到的唯一区别是一个文档比另一个文档有更多的链接,但链接的数量肯定不重要?

1 个答案:

答案 0 :(得分:0)

经过进一步调查,问题仅限于文件的标题。我的代码将取消链接文档正文中的所有字段,但不会对标题执行此操作。结果,标题保持链接,并询问用户是否要更新。

我最终在这里找到了我的解决方案: VBA Excel - Unlink headers & footers in Word