解决vba插入图片后图片无法显示的问题
1、你遇到的问题是不是这样:无法显示连接的图像。该文件可能已被移动、重命名或删除。请验证该连接是否指向正确的文件和位置。
2、据了解,该问题自EXCLE2010(含)之后就出现这个问题,意味着你用的老版本的excel不会出现这邗锒凳审个问题。解决方法是将Pictures.Insert替换为Shapes.AddPicture可解决问题。
3、我是在别人的方法基础上修改替换为Shapes.AddPicture的,解决了通过单元格定位图片插入位置,以及如何原始比例插入图片等问题:
4、首先打开Excel之后,按快捷键:Alt+F11,或者在顶部菜单栏选择“开发工具”→点击“Visual Basic”打开vba编辑器:
5、在左侧工程栏目下,找到刚才的工作簿,点击右键“插入”→“模块”:
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 = NothingEnd Sub
7、排版不易,请珍惜,下面给一个使用该方法的列子:InsertPicture ActiveSheet, "d:\a.png", Cells(2, 2), False, False
8、完成。