使用Excel VBA使用循环将图片插入到Word中

我试图用一个循环来缩短我的VBA代码的最后一部分。

我现在的代码是:

Sub InsertPics() Dim WordApp as Object Dim WordDoc as Object Set WordApp = CreateObject("Word.Application") Set WordDoc = WordApp.Documents.Open("Testing.docx" WordApp.Visible = True Dim path() as Variant Dim i as Long Dim Pic as Variant path = Application.Transpose(Sheets("Selection").Range("N10:N24").Value) For i = LBound(ppath) To UBound(ppath) path(i) = Sheets("Output").Range("Directory").Value & "\" & path(i) & ".jpg" Next i Set Pic1 = WordDoc.InlineShapes.AddPicture(path(1), False, True).ConvertToShape Set Pic2 = WordDoc.InlineShapes.AddPicture(path(2), False, True).ConvertToShape Set Pic3 = WordDoc.InlineShapes.AddPicture(path(3), False, True).ConvertToShape End Sub 

Set Pic()部分进行了很长一段时间,所以我正在寻找一种方法来做一个较短的代码相同的子。 有没有办法循环这部分?

注意: WordDoc引用特定的文档, path()引用我已经定义的目录地址列表。

您可以使用数组或集合:

 Sub test_volvader() Dim i As Integer Dim myCol As Collection Set myCol = New Collection For i = 1 To 3 myCol.Add WordDoc.InlineShapes.AddPicture(Path(1), False, True).ConvertToShape, i Next i For i = 1 To myCol.Count YourOperationOnAPicture myCol.Item(i) Next i End Sub 

你应该把你的照片也列入清单。 请参阅R3uK的collectionbuild议。

但是如果你不需要在图片上保留一个参考,你可以使它更简单:

 For i = 1 To 3 WordDoc.InlineShapes.AddPicture(path(i), False, True).ConvertToShape Next