如何从arrayList中提取图片对象

我在ArrayList放置了可变数量的图片。 每个图片都有自己的名字(通过命名的范围)。

 Dim Pic As Picture Dim picArray As Object Set picArray = CreateObject("System.Collections.ArrayList") For Each Pic In ActiveSheet.Pictures picName = differentNameEachTime If Pic.Left = Range(picName).Left And Pic.Top = Range(picName).Top Then picArray.Add Pic end if next Pic 

以上绝对作用如下所示的Msgbox调用validation:

 Range("G3").Select x = 0 For Each Pic In picArray Set picObject = Pic MsgBox Pic.Name MsgBox TypeName(Pic) ActiveCell.Offset(0, x) = Pic '(Doesn't work) ActiveCell.Offset(0, x) = picObject '(Doesn't work) x = x + 1 Next Pic 

但是,使活动单元格的图片点不起作用 – 我不知道如何将每个检索到的图像插入单元格。

您需要将图片的位置更改为目标单元的位置 。 像这样:

 Pic.Left = ActiveCell.Offset(0, x).Left Pic.Top = ActiveCell.Offset(0, x).Top 

请注意,在Excel中,您实际上不能将图片插入单元格中。 工作表上方的图片“浮动”。

但是,您可以将图片“链接”到浮动的单元格,以便它移动并调整单元格的大小,从而performance得好像在里面一样。