我有一个带有一堆书签的打开Word文档,每个书签都有一个以前从Excel导出的Excel表格的内嵌图像。
现在,我需要更新Word文档中的表格,因为它们已在Excel中更改。
我这样做的方法是将Excel中的表名与Word中的书签名匹配。如果它们等于我想要用当前的图像替换Word中的现有图像。
到目前为止,这是我的代码:
Sub substituir()
Set WordApp = GetObject(class:="Word.Application")
Set DocumentoDestino = WordApp.ActiveDocument
For Each folha In ThisWorkbook.Worksheets
If folha.Visible Then
'loop all excel tables
For Each tabela In folha.ListObjects
tabela.Name = Replace(tabela.Name, " ", "")
nomeTabela = tabela.Name
For Each myBookmark In DocumentoDestino.Bookmarks
If Right(myBookmark.Name, 4) = "PGST" Then
'This is where I need help
If myBookmark.Name = nomeTabela Then
'code to clear the table already in myBookmark here
'then copy and paste tables in myBookmark
tabela.Range.Copy
myBookmark.Range.PasteSpecial link:=False, DataType:=wdPasteMetafilePicture, _
Placement:=wdInLine, DisplayAsIcon:=False
End If
End If
Next myBookmark
Next tabela
End If
Next folha
End Sub
我尝试了很多不同的方法,从删除书签并将其重新添加回其他人,但似乎没有任何工作。
在评论中:'code to clear the table already in myBookmark here
我需要帮助。
答案 0 :(得分:1)
在以下代码中,我尝试包含您可能需要的项目语法。
Private Sub TestMark()
Dim Mark As String
Dim Rng As Range
Dim ShpRng As Range
Mark = "Text1"
With ActiveDocument
If .Bookmarks.Exists(Mark) Then
Set Rng = .Bookmarks(Mark).Range
If Rng.InlineShapes.Count Then
Set ShpRng = Rng.InlineShapes(1).Range
With ShpRng
Debug.Print .Start, .End
End With
End If
End If
End With
End Sub
当然,一旦你知道范围的开始和结束,你可以操纵它,意味着删除并替换它。
我觉得你可能会使用InlineShape'标题属性以查找和解决它。