Excel VBA从列中的图像名称插入图像

时间:2013-03-23 16:14:10

标签: image excel excel-vba vba

如果不同的线程有关插入图像和重新调整大小但是找不到一个完全符合我想要它的内容,那么已经阅读了很多。

所以说我有一个包含2行的电子表格。列A是图像列,列B是图像名称。

我希望有一个脚本将遍历B列中的每个值,将与该名称匹配的图像插入到A列的同一行中,调整其大小以适应150高18宽的单元格的大小,然后转到下一行并重复电子表格。

1 个答案:

答案 0 :(得分:4)

这是一个样本,它将遍历您可以修改的一系列单元格(B1:B100),并使用单元格中的文件名向左一列(因此,从A列开始),并将图像的大小调整为适合B列中的单元格。

Sub InsertPic()
Dim pic As String 'file path of pic
Dim myPicture As Picture 'embedded pic
Dim rng As Range 'range over which we will iterate
Dim cl As Range 'iterator

Set rng = Range("B7:B7")
For Each cl In rng
    pic = cl.Offset(0, -1)

        Set myPicture = ActiveSheet.Pictures.Insert(pic)
        '
        With myPicture
            .ShapeRange.LockAspectRatio = msoFalse
            .Width = cl.Width
            .Height = cl.Height
            .Top = Rows(cl.Row).Top
            .Left = Columns(cl.Column).Left
        End With
        '

Next

End Sub

此代码中没有错误处理来解释无效的文件名,您可能希望添加该文件名。