3 回答
TA贡献1798条经验 获得超3个赞
尝试这个:
With xlApp.ActiveSheet.Pictures.Insert(PicPath)
With .ShapeRange
.LockAspectRatio = msoTrue
.Width = 75
.Height = 100
End With
.Left = xlApp.ActiveSheet.Cells(i, 20).Left
.Top = xlApp.ActiveSheet.Cells(i, 20).Top
.Placement = 1
.PrintObject = True
End With
最好不要在Excel中选择任何内容,通常这从来没有必要,这会使代码变慢。
TA贡献1725条经验 获得超7个赞
查看发布的答案,我认为这段代码对于某人来说也是一种选择。上面没有人.Shapes.AddPicture在他们的代码中使用过.Pictures.Insert()
Dim myPic As Object
Dim picpath As String
picpath = "C:\Users\photo.jpg" 'example photo path
Set myPic = ws.Shapes.AddPicture(picpath, False, True, 20, 20, -1, -1)
With myPic
.Width = 25
.Height = 25
.Top = xlApp.Cells(i, 20).Top 'according to variables from correct answer
.Left = xlApp.Cells(i, 20).Left
.LockAspectRatio = msoFalse
End With
我正在使用Excel2013。还意识到您需要填写中的所有参数.AddPicture,因为错误“参数不是可选的”。看着这个,您可能会问为什么我将Height和设置Width为-1,但这没关系,因为这些参数设置在With方括号之间。
希望它对某人也可能有用:)
添加回答
举报