【问题标题】:Use Excel-VBA to create and Insert String/Text AND Image to Word Document table-cell使用 Excel-VBA 创建字符串/文本和图像并将其插入 Word 文档表格单元格
【发布时间】:2019-10-07 09:00:00
【问题描述】:

我尝试用 Excel-VBA 创建 Word 文档

一步一步: 首先:创建 Word-Document 并添加一个表格(Mailing-Label) 第二:将一些文本填充到一些单元格中。效果很好!

现在我的问题: 最后,我想在单元格中附加一张图片。 我的问题是,图像范围清除了旧文本。 而且我不知道如何在循环结束时设置图像和文本。

我的代码

oDoc.Tables(1).Cell(zeile, spalte).Range.Text = "some string"
oDoc.Tables(1).Cell(zeile, spalte).Range.InlineShapes.AddPicture path_to_image

【问题讨论】:

  • 有贡献帮助您解决问题吗?

标签: excel vba ms-word


【解决方案1】:

了解正在发生的事情的方法是考虑如果您手动执行此操作并使用选择,它将如何工作。当您将文本分配给 Range 时,就像您所期望的那样输入它。第二行代码,插入图像,就像选择整个单元格(在这种情况下)然后插入图像:它替换了 Range 中的内容。手动工作时,如果您选择了整个单元格,您可以按右箭头或单击末尾以将焦点放在已键入的内容之后。

同样的原则适用于使用Range 对象:它需要折叠 以便向其添加内容。

以下代码示例演示了这一点。它还强调了如何通过将表格和目标范围分配给对象来提高代码的效率。

Dim tbl As Word.Table 'or As Object if using late-binding
Dim rng As Word.Range 'or As Object if using late-binding
Dim chrCount As Long

Set tbl = oDoc.Tables(1)
Set rng = tbl.Cell(zeile, spalte).Range
rng.Text = "test"
chrCount = rng.Characters.Count
'Get the end of the cell content
Set rng = rng.Characters(chrCount - 1)
rng.Collapse wdCollapseEnd
rng.InlineShapes.AddPicture path_to_image

【讨论】:

    【解决方案2】:

    可能是这样的

    Sub Test()
    Dim Wrd As Word.Application
    Dim oDoc As Word.Document
    
    Set Wrd = CreateObject("Word.Application")
    Wrd.Visible = True
    Set oDoc = Wrd.Documents.Add
    oDoc.Tables.Add oDoc.Range, 3, 3
    
    zeile = 2
    spalte = 2
    path_to_image = "C:\Users\user\Desktop\Pull2.jpg"
    
    oDoc.Tables(1).Cell(zeile, spalte).Range.Select
    
        With Wrd.Selection
        .TypeText Text:="some string"
        .InlineShapes.AddPicture path_to_image
        End With
    
    End Sub
    

    【讨论】:

    • 不起作用。感谢您的帮助,但我收到错误:对象不支持此属性或方法
    • 对不起,我错过了您使用 Excel VBA 操作的要点。但是,尽管@Cindy Meister 提供了非常全面的答案(他的专业知识帮助我解决了我在 SO 中的第一个问题)并且我投票给了这个答案, .我编辑了我的答案并进行了必要的更正以保持记录正确......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多