VBA怎样将图片加到Excel指定单元格中

时间:2022-11-15 18:27:12
下面是用VBA将图片加到Excel指定单元格中的代码
Sub Search()
    '在调用图片之前先删除已有的图片
    Dim S As Shape
    Dim RG As Range
    For Each S In ActiveSheet.Shapes
        If S.Type <> 8 Then    '8是按键的类型,其它的都删了
            S.Delete
        End If
    Next S
    
    Dim Printphoto As String                              '申明一个名为Printphoto的字符型变量,
    Printphoto = ActiveSheet.Cells(1, 6).Value & ".JPG"   '我在第1行第5列组合了照片名称前缀,
                                                          '在此再加后缀jpg就是文件夹中的照片名
    Dim MyFile As Object                                  '申明一个变量
    Set MyFile = CreateObject("Scripting.FileSystemObject")
    
    If MyFile.FileExists(ThisWorkbook.Path & "\" & "photo" & "\" & Printphoto) = False Then
    MsgBox ThisWorkbook.Path & "\" & "photo" & "\" & Printphoto & "图片不存在"
    
    Else
    ActiveSheet.Shapes.AddShape(msoShapeRectangle, Range("f5").Left, Range("f5").Top, Range("f5").Width, Range("f5").Height * 3).Select 'msoShapeRectangle是类别,是一个矩形
    Selection.ShapeRange.Fill.UserPicture Printphoto    
    End If
End Sub
上面的代码在使用时只能调出第一张图片,调第二张时就会出现程序错误
错误提示是
Selection.ShapeRange.Fill.UserPicture Printphoto
这行有问题
请高手帮忙看看怎样改正

3 个解决方案

#1


你这不是只插入一张图片吗?
何来“调第二张”之说!

#2


我刚才试了一下,可以用这段代码添加多张图片。
没有运行错误。

楼主注意你的Office版本,是否支持这样的操作。
不同版本的Office,可能在细节上有所差别。

#3


问题解决了,代码没问题,问题出在我把工作表加密了,需要添加解密的代码。

#1


你这不是只插入一张图片吗?
何来“调第二张”之说!

#2


我刚才试了一下,可以用这段代码添加多张图片。
没有运行错误。

楼主注意你的Office版本,是否支持这样的操作。
不同版本的Office,可能在细节上有所差别。

#3


问题解决了,代码没问题,问题出在我把工作表加密了,需要添加解密的代码。