解决vba插入图片后图片无法显示的问题

2025-10-17 13:24:10

1、你遇到的问题是不是这样:无法显示连接的图像。该文件可能已被移动、重命名或删除。请验证该连接是否指向正确的文件和位置。

解决vba插入图片后图片无法显示的问题

2、据了解,该问题自EXCLE2010(含)之后就出现这个问题,意味着你用的老版本的excel不会出现这个问题。解决方法是将Pictures.Insert替换为Shapes.AddPicture可解决问题。

解决vba插入图片后图片无法显示的问题

3、我是在别人的方法基础上修改替换为Shapes.AddPicture的,解决了通过单元格定位图片插入位置,以及如何原始比例插入图片等问题

解决vba插入图片后图片无法显示的问题

4、首先打开Excel之后,按快捷键:Alt+F11,或者在顶部菜单栏选择“开发工具”→点击“Visual Basic”打开vba编辑器:

解决vba插入图片后图片无法显示的问题

5、在左侧工程栏目下,找到刚才的工作簿,点击右键“插入”→“模块”:

解决vba插入图片后图片无法显示的问题

6、  插入以下代码:

Sub InsertPicture(objSheet As Worksheet, PictureFileName As String, TargetCell As Range, _    CenterH As Boolean, CenterV As Boolean)

Dim p As Object, t As Double, l As Double, w As Double, h As Double

    If TypeName(objSheet) <> "Worksheet" Then Exit Sub

    If Dir(PictureFileName) = "" Then Exit Sub

    '添加图片

    Set p = objSheet.Shapes.AddPicture(PictureFileName, 0, 1, 0, 0, -1, -1)

    ' 定位,如果根据单元格,最后两个参数设置为false

    With TargetCell

        t = .Top

        l = .Left

        If CenterH Then

            w = .Offset(0, 1).Left - .Left

            l = l + w / 2 - p.Width / 2

            If l < 1 Then l = 1

        End If

        If CenterV Then

            h = .Offset(1, 0).Top - .Top

            t = t + h / 2 - p.Height / 2

            If t < 1 Then t = 1

        End If

    End With

    With p

        .Top = t

        .Left = l

    End With

    Set p = Nothing

End Sub

解决vba插入图片后图片无法显示的问题

7、 排版不易,请珍惜,下面给一个使用该方法的列子:

InsertPicture ActiveSheet, "d:\a.png", Cells(2, 2), False, False

解决vba插入图片后图片无法显示的问题

8、完成。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢