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,可能在细节上有所差别。
没有运行错误。
楼主注意你的Office版本,是否支持这样的操作。
不同版本的Office,可能在细节上有所差别。
#3
问题解决了,代码没问题,问题出在我把工作表加密了,需要添加解密的代码。
#1
你这不是只插入一张图片吗?
何来“调第二张”之说!
何来“调第二张”之说!
#2
我刚才试了一下,可以用这段代码添加多张图片。
没有运行错误。
楼主注意你的Office版本,是否支持这样的操作。
不同版本的Office,可能在细节上有所差别。
没有运行错误。
楼主注意你的Office版本,是否支持这样的操作。
不同版本的Office,可能在细节上有所差别。
#3
问题解决了,代码没问题,问题出在我把工作表加密了,需要添加解密的代码。