在Excel 2010电子表格之间复制图片而不会导致保存错误

时间:2016-12-16 20:14:14

标签: excel image vba excel-vba excel-2010

我有一个宏可以将数据和图片从一个工作簿(A)复制到另一个工作簿(B)。工作簿B在Excel 2010中。如果工作簿A是Excel的早期版本(例如97-2003),则代码可以正常工作。但是,如果工作簿A也是Excel 2010格式,代码似乎可以工作,但在尝试保存文件时,我收到错误("在保存时检测到错误' C:...' Microsoft Excel可以通过删除或修复某些功能来保存文件......")。

代码的关键部分(在打开工作簿A之后)是:

For Each s In workbookA.Sheets
    If s.Pictures.Count > 0 Then
        For Each pic In s.Shapes
            If Left(pic.Name, 3) = "Pic" Then
                pic.Copy
                workbookB.Activate
                Worksheets("Sheet1").Range("A1").Select
                ActiveSheet.Paste
                GoTo gotPicture:
            End If
        Next pic
    End If
Next s
gotPicture:

workbookA.Close

通过删除图片解决错误。或者在关闭工作簿A之前保存并关闭工作簿B.这些都不是一个很好的解决方案。根据我的研究,听起来这是Excel 2010中的一个错误,您无法在电子表格之间复制图片而不是VBA问题。可能有一个补丁,但企业策略和需要运行宏的用户数量对我来说是一个糟糕的选择。

有没有办法解决这个问题?某些方法在Excel 2010电子表格之间复制图片并不会导致此问题?感谢。

1 个答案:

答案 0 :(得分:0)

进入同样的问题。通过保持我的源文档打开来解决它,直到我的目标工作簿被保存(正如你指出的那样,这不是很好)。来自Microsoft的修补程序补丁: https://support.microsoft.com/en-us/help/2597034/you-cannot-save-a-workbook-that-contains-an-image-that-was-copied-from