在找到的文本下方的行中将图像插入Word文档



我正在通过VBA代码使用Excel工作簿中的数据创建一个自动文档生成工具。

下面的代码替换文本并插入图像,但是,它们会被推到文档的顶部。

有没有任何方法可以返回找到的文本的位置,根据位置声明一个范围,并使用它将内联形状(图像(插入tagName文本后面的行中?

我以前通过从Excel调用Word宏来完成这项工作,但是,这需要完全基于Excel
此程序将处理没有VBA的Word文档。

For Each sr2 In wDoc.StoryRanges
With sr2.Find
.Text = tagName
.Replacement.Text = tagValue
.Wrap = 1
.Execute Replace:=2
If .Found = True Then
sr2.InlineShapes.AddPicture fileName:=ThisWorkbook.Path & "1. SOW Templates Client Summary import.jpg"
End If
End With
Next sr2

要轻松地循环Find方法的结果,如果使用Replace:=wdReplaceOne(wdReplaceOne=1(而不是Replace:=wdReplaceAll(wdReplaceAll=2(会更容易。(基于此答案(。

若要插入图像,我建议您选择图像的范围。将其添加为自由浮动图像,然后将其转换为内联形状。

这里有一种方法:

Dim r As Object 'Word.Range
Dim bFound As Boolean
bFound = True
Set r = wDoc.Content
r.Find.ClearFormatting
Do While bFound
With r.Find
.Text = tagname
.Replacement.Text = tagValue
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
bFound = .Execute(Replace:=wdReplaceOne)
End With
If bFound Then
r.Select
Selection.Next(Unit:=wdParagraph, Count:=1).Select
Dim img As Object 'Word.Shape
Set img = wDoc.Shapes.AddPicture(Filename:=ThisWorkbook.Path & "1. SOW Templates Client Summary import.jpg")
img.ConvertToInlineShape
End If
Loop

最新更新