使用单词VBA替换inlineshapes

时间:2018-06-27 13:10:29

标签: vba ms-word word-vba

我有一个包含很多图像的Word文档,希望能够选择一个文件路径(新图像位于其中并编号为1到100),然后用新图像替换现有图像。

我已经阅读了其他一些文章,以获取现有inlineshapes的属性来实现此目的,但我也阅读了一些采用以下方法成功的人,该方法似乎更简单(我只是无法使代码充分发挥作用然而)。当前,代码将运行并完美地替换最后一个图像,但随后停止并显示错误“ 438”-对象在尝试替换第二个最后一个图像时不支持此属性或方法。

代码如下:

Sub Replace_images()
  Dim rg As Word.Range
  Dim i As Long
  Dim doc As Word.Document
  Dim path As String

 'Ensure pictures are numbered with no leading zeros (in folder) & are .jpg
  path = "C:\filepathtopictures\"

   Set doc = ActiveDocument

For i = doc.InlineShapes.Count To 1 Step -1

  Set rg = doc.InlineShapes(i).Range
  doc.InlineShapes(i).Delete
  rg = doc.InlineShapes.AddPicture(path & i & ".jpg", False, True, rg)

Next i

End Sub

我不明白当上一张图片没有任何变化时,对下一张图片使用addpicture怎么不起作用。如果有人可以解释为什么它不起作用,或者告诉我需要更改什么,那就太好了!

0 个答案:

没有答案