使用VBA在Excel中保存图片

时间:2020-03-27 06:04:51

标签: excel vba

在工作中,人们不得不手动在excel的特定页面中介绍图片并手动调整其大小。作为一个完整的初学者,我设法找到一些VBA代码,通过单击按钮并将其插入到一定范围的单元格中来帮助介绍图片。我的问题是我无法弄清楚(搜索了很多帖子之后)如何正确引入该功能来保存图像而不建立链接,以便其他人可以看到报告而不会出现图片不存在的错误

您能帮我完成应在哪里引入该功能?

Private Sub CommandButton3_Click()
Dim strFileName As String
Dim objPic As Picture
Dim rngDest As Range
strFileName = Application.GetOpenFilename( _
    FileFilter:="Images (*.jpg;*.gif;*.png),*.jpg;*.gif;*.png", _
    Title:="Please select an image...")
If strFileName = "False" Then Exit Sub
Set rngDest = Me.Range("B24:C26")
Set objPic = Me.Pictures.Insert(strFileName)
With objPic
    .ShapeRange.LockAspectRatio = msoFalse
    .Left = rngDest.Left
    .Top = rngDest.Top
    .Width = rngDest.Width
    .Height = rngDest.Height
End With
End Sub

谢谢!

1 个答案:

答案 0 :(得分:3)

尝试一下:

Private Sub CommandButton3_Click()
    Dim strFileName As String
    Dim objPic As Shape '<<<
    Dim rngDest As Range
    strFileName = Application.GetOpenFilename( _
        FileFilter:="Images (*.jpg;*.gif;*.png),*.jpg;*.gif;*.png", _
        Title:="Please select an image...")
    If strFileName = "False" Then Exit Sub
    Set rngDest = Me.Range("B24:C26")

     Set objPic = Me.Shapes.AddPicture(Filename:=strFileName, _
                                       linktofile:=msoFalse, _
                                       savewithdocument:=msoCTrue, _
                                       Left:=rngDest.Left, Top:=rngDest.Top, _
                                       Width:=rngDest.Width, Height:=rngDest.Height)

End Sub
相关问题