使用Excel VBA创建字符串/文本和图像并将其插入Word文档表格单元

使用Excel VBA创建字符串/文本和图像并将其插入Word文档表格单元,excel,vba,ms-word,Excel,Vba,Ms Word,几天后,我尝试使用Excel VBA创建Word文档 逐步: 第一:创建Word文档并添加表(邮件标签) 第二:在一些单元格中填充一些文本。很好 现在我的问题是: 最后,我想在单元格中添加一张图片。 我的问题是,图像范围清除旧文本。 我不知道,如何设置循环末尾的图像和文本 我的代码 oDoc.Tables(1).Cell(zeile, spalte).Range.Text = "some string" oDoc.Tables(1).Cell(zeile, spalte).Range.Inlin

几天后,我尝试使用Excel VBA创建Word文档

逐步: 第一:创建Word文档并添加表(邮件标签) 第二:在一些单元格中填充一些文本。很好

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

我的代码

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

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

理解正在发生的事情的方法是,思考如果您使用选择手动执行此操作,这将如何工作。当您将文本指定给
范围时,就像您所期望的那样,这就像键入文本一样。第二行代码,插入图像,就像选择整个单元格(在本例中)然后插入图像:它替换范围内的内容。手动操作时,如果选择了整个单元格,则应按右箭头或在末尾单击,将焦点放在键入的内容之后

当使用
范围
对象时,同样的原则也适用:它需要折叠才能添加内容

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

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

这不管用。感谢您的帮助,但我得到了一个错误:Object不支持此属性或方法抱歉,我错过了您使用Excel VBA进行操作的要点。不过,@Cindy Meister(其专业知识帮助我解决了SO中的第一个问题)提供了非常全面的答案,我投票支持该答案,.我对我的答案进行了必要的修改,以保持记录的正确性…有人帮助你解决了这个问题吗?