如何使用VBA在指定单元格位置处将图片插入Excel中

我使用以下代码将“ .jpg”文件添加到我的Excel工作表中:


'Add picture to excel

xlApp.Cells(i, 20).Select

xlApp.ActiveSheet.Pictures.Insert(picPath).Select

'Calgulate new picture size

With xlApp.Selection.ShapeRange

    .LockAspectRatio = msoTrue

    .Width = 75

    .Height = 100

End With

'Resize and make printable

With xlApp.Selection

    .Placement = 1 'xlMoveAndSize

    '.Placement = 2 'xlMove

    '.Placement = 3 'xlFreeFloating

    .PrintObject = True

End With

我不知道自己在做错什么,但是没有将其插入正确的单元格中,所以该怎么做才能将该图片放入Excel中的指定单元格中?


慕桂英546537
浏览 4088回答 3
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 = TrueEnd With最好不要在Excel中选择任何内容,通常这从来没有必要,这会使代码变慢。

qq_遁去的一_1

查看发布的答案,我认为这段代码对于某人来说也是一种选择。上面没有人.Shapes.AddPicture在他们的代码中使用过.Pictures.Insert()Dim myPic As ObjectDim picpath As Stringpicpath = "C:\Users\photo.jpg" 'example photo pathSet 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 = msoFalseEnd With我正在使用Excel2013。还意识到您需要填写中的所有参数.AddPicture,因为错误“参数不是可选的”。看着这个,您可能会问为什么我将Height和设置Width为-1,但这没关系,因为这些参数设置在With方括号之间。希望它对某人也可能有用:)
打开App,查看更多内容
随时随地看视频慕课网APP