使用Excel VBA删除Word中粘贴表格的数据源链接
解决Word文档与Excel数据链接断开问题
你需要将Word中链接到Excel的内容转为静态文本,彻底切断两者的关联。直接用Fields.Delete会删掉内容,正确的做法是先解除字段链接(保留内容),再处理可能的OLE链接对象。
完整修改后的代码
将以下逻辑添加到你现有SaveInvWord过程的SaveAs操作之后:
Dim doc As Object Dim fld As Object Dim oleObj As Object Set doc = objWord.ActiveDocument ' 1. 解除所有Excel相关字段的链接(转为静态文本) For Each fld In doc.Fields ' 匹配链接到Excel的字段,若模板只有Excel链接可直接去掉If判断 If InStr(fld.Code.Text, "EXCEL") > 0 Or InStr(fld.Code.Text, "LINK") > 0 Then fld.Unlink End If Next fld ' 2. 处理链接的Excel表格(这类是OLE嵌入对象) For Each oleObj In doc.InlineShapes If oleObj.Type = 2 Then ' 2代表链接型OLE对象 oleObj.LinkFormat.BreakLink End If Next oleObj ' 保存修改后的静态文档 doc.Save
代码说明
Fields.Unlink:把链接字段的内容转为静态文本,仅切断与Excel的关联,不会删除原有内容。如果你的模板里只有Excel相关字段,可直接移除If判断,对所有字段执行Unlink。InlineShapes.LinkFormat.BreakLink:针对通过「粘贴链接」插入的Excel表格(这类属于OLE链接对象),执行后会将其转为普通Word表格,不再同步Excel数据。- 最后再次执行
Save,确保静态内容被写入目标文件。
整合后的完整代码
Dim objWord As Object Dim invno As Long Dim custname As String Dim amt As Currency Dim dt_issue As Date Dim term As Byte Dim nextrec As Range Dim path As String Dim fname As String Dim doc As Object Dim fld As Object Dim oleObj As Object Sub SaveInvWord() invno = Range("J2") custname = Range("E7") amt = Range("J22") dt_issue = Range("J3") term = Range("J5") path = "C:\Users\Me\Documents\" fname = invno & " - " & custname Set objWord = CreateObject("Word.Application") Set doc = objWord.Documents.Open("C:\Users\Me\Documents\Test.docx") objWord.Visible = True ' 保存新文件 doc.SaveAs Filename:=path & fname ' 断开与Excel的所有链接 ' 处理字段链接 For Each fld In doc.Fields If InStr(fld.Code.Text, "EXCEL") > 0 Or InStr(fld.Code.Text, "LINK") > 0 Then fld.Unlink End If Next fld ' 处理OLE表格链接 For Each oleObj In doc.InlineShapes If oleObj.Type = 2 Then oleObj.LinkFormat.BreakLink End If Next oleObj ' 保存静态版本 doc.Save Set nextrec = Sheet3.Range("A1048576").End(xlUp).Offset(1, 0) ' 可选:清理Word对象,避免进程残留 doc.Close objWord.Quit Set doc = Nothing Set objWord = Nothing End Sub
注意事项
- 若模板包含非Excel链接的字段,可调整
If判断条件,精准匹配Excel相关的链接字段。 - 测试前请备份模板文件,避免误操作导致模板损坏。
内容的提问来源于stack exchange,提问作者Jack Arthur
相关产品推荐
相关产品推荐

