我有一个大的表格,里面有几百张图片,需要把Excel里的图片都导出来保存在文件夹里,并且图片要根据表格里图片对应到A列单元格的值来给图片命名,所以写了个VBA代码来完成,代买如下:
Sub exportpictures()
Dim i As Long Dim pic Dim p As String Dim path As String
path = InputBox("请输入要保存图片的路径:", "保存路径", ThisWorkbook.path)
For i = 1 To Sheet1.Shapes.Count Set pic = Sheet1.Shapes(i) If pic.Type = 11 Or pic.Type = 13 Then pic.Name = pic.TopLeftCell.Offset(0, -1).Value p = path & "\" & pic.Name & ".jpg" pic.CopyPicture With ActiveSheet.ChartObjects.Add(0, 0, pic.Width, pic.Height).Chart .Paste .Export p, "jpg" .Parent.Delete End With End If Next End Sub
本来这个代码是在家里摸索了半天倒腾出来的,家里的Excel版本是2016版,试过了也可以完美运行,但是回到公司,用的是Excel 365版本,反而是运行不了。主要出现几个问题: 1. 报错:“copypicture”方法作用于对象“shape”时失败“, 改成copy也不行。 2. 用On Error Resume Next 语句强行运行,部分图片导出来后,打开是一片空白的,没有图像在里面,但在2016版本上是没这个问题的。
搞了半天,实在搞不定,只能上来这里,请教一下各位大神,看看有没有办法可以完美解决呢?或者那个大神能够提供另外一个办法能够把图片完美导出的,谢谢
附上简化后的附件。
|