将文件夹中的图像插入单元格

Ias*_*son 0 excel vba

我想将文件夹的所有图像一张一张地插入到 Excel 中递增的单元格中。

例如,图片 1 应插入单元格 E1,然后图片 2 插入单元格 E2,依此类推。

我的代码只能从该目录中的硬编码单元格中插入一张图片:

Sub Insert()

Dim myPict As Picture
Dim PictureLoc As String
PictureLoc = "C:\MyFolder\Picture1.png"

With Range("E1")
    Set myPict = ActiveSheet.Pictures.Insert(PictureLoc)
    .RowHeight = myPict.Height
    myPict.Top = .Top
    myPict.Left = .Left
    myPict.Placement = xlMoveAndSize
End With
End Sub
Run Code Online (Sandbox Code Playgroud)

Dom*_*nic 5

尝试...

Option Explicit

Sub Insert()

    Dim strFolder As String
    Dim strFileName As String
    Dim objPic As Picture
    Dim rngCell As Range

    strFolder = "C:\Users\Domenic\Pictures\Saved Pictures\" 'change the path accordingly
    If Right(strFolder, 1) <> "\" Then
        strFolder = strFolder & "\"
    End If

    Set rngCell = Range("E1") 'starting cell

    strFileName = Dir(strFolder & "*.png", vbNormal) 'filter for .png files

    Do While Len(strFileName) > 0
        Set objPic = ActiveSheet.Pictures.Insert(strFolder & strFileName)
        With objPic
            .Left = rngCell.Left
            .Top = rngCell.Top
            .Height = rngCell.RowHeight
            .Placement = xlMoveAndSize
        End With
        Set rngCell = rngCell.Offset(1, 0)
        strFileName = Dir
    Loop

End Sub
Run Code Online (Sandbox Code Playgroud)

要将 LockAspectRatio 属性设置为 False,并将图片的宽度设置为单元格的宽度...

With objPic
    .ShapeRange.LockAspectRatio = False
    .Left = rngCell.Left
    .Top = rngCell.Top
    .Width = rngCell.Width
    .Height = rngCell.RowHeight
    .Placement = xlMoveAndSize
End With
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!