【问题标题】:Attempting to insert an image after the text within a Word table using VBA尝试使用 VBA 在 Word 表格中的文本之后插入图像
【发布时间】:2021-03-15 19:02:36
【问题描述】:

我在 Word 中有一个表格,其中包含每个单元格中的一些文本。我想在文本末尾的单元格中插入文件中的图像。目前,我只知道如何在文本前插入图片。

下图显示了一个基本表格,第一个单元格中有一些文本:

然后我运行一个基本宏将文件中的特定图像插入到第一个单元格中:

Sub InsertImageIntoCell()
    ActiveDocument.Tables(1).Rows(1).Cells(1).Range.InlineShapes.AddPicture _
    FileName:="C:\Data\tree.png", linktofile:=False, savewithdocument:=True
End Sub

宏运行后,我最终会在文本左侧显示一个图像:

谁能提供一些关于如何将图像插入到预先存在的文本右侧的见解?

【问题讨论】:

  • AddPicture 有一个 Range 参数。您可以使用它来指定图片的确切位置
  • 感谢蒂莫西的评论,不幸的是,到目前为止,在 VBA 中工作时,我一直非常依赖使用“选择”。我仍在尝试使用“范围”来解决问题。我如何知道该单元格中文本末尾的 Range 是什么?

标签: vba ms-word


【解决方案1】:

更简单:

Sub InsertImageIntoCell()
With ActiveDocument
  .InlineShapes.AddPicture FileName:="C:\Data\tree.png", LinkToFile:=False, _
    SaveWithDocument:=True, Range:=.Tables(1).Cell(1, 1).Range.Characters.Last
End With
End Sub

【讨论】:

  • 是的,你是对的——这要简单得多。再次感谢您的帮助。
【解决方案2】:

在蒂莫西的评论之后,我设法做了一些研究并想出了一个解决方案。

这是我的 VBA 代码:

Sub InsertImageIntoCell()
    With ActiveDocument
        Set myRange = .Tables(1).Rows(1).Cells(1).Range
        myRange.Start = myRange.End - 1
        
        .Tables(1).Rows(1).Cells(1).Range.InlineShapes.AddPicture _
        FileName:="C:\Data\tree.png", linktofile:=False, _
        savewithdocument:=True, Range:=myRange
    End With
End Sub

这当然可能不是最好的解决方案,但它对我来说非常有用。即它现在在单元格中的文本之后插入图像。

这是运行宏之前的表格:

在运行宏之后又是这样:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 2019-10-07
    • 1970-01-01
    相关资源
    最近更新 更多