我在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
调用验证上述内容肯定有效:
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
但是让活动细胞成为图片并不起作用 - 我不知道如何将每个检索到的图像插入细胞中。
答案 0 :(得分:1)
您需要将图片的 位置 更改为目标单元格的 位置 。像这样:
Pic.Left = ActiveCell.Offset(0, x).Left
Pic.Top = ActiveCell.Offset(0, x).Top
请注意,在Excel中,您无法将图片实际插入单元格。图片“漂浮”在工作表上方。
然而,您可以将图片“链接”到它浮动的单元格,以便它随着单元格移动和调整大小,因此表现就好像它在里面一样。