我有一个宏可以将数据和图片从一个工作簿(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电子表格之间复制图片并不会导致此问题?感谢。
答案 0 :(得分:0)
进入同样的问题。通过保持我的源文档打开来解决它,直到我的目标工作簿被保存(正如你指出的那样,这不是很好)。来自Microsoft的修补程序补丁: https://support.microsoft.com/en-us/help/2597034/you-cannot-save-a-workbook-that-contains-an-image-that-was-copied-from