【发布时间】:2016-05-25 17:31:29
【问题描述】:
我有一些 VBA 代码,我有几个国家和产品按钮。
我的目标是当我单击一个按钮时,单元格 (1, 1) 将被覆盖为“US”、“CA”、“MX”等文本,而单元格 (2, 1) 将被覆盖为“PC” , “打印机”
示例:如果 Cells (1, 1) = US 然后选择一个范围,复制该范围,最后将其粘贴到同一张工作表中,但作为图片和不同的范围。
但首先我需要删除之前的图片以替换为新的。
它可以工作,但有时它会显示一条带有以下错误的消息并且不粘贴范围。
'运行时错误 1004 - microsoft excel 无法粘贴数据'
删除图片的代码
Sub Delete_Pictures()
For Each Shape In ActiveSheet.Shapes
If Left(Shape.Name, 7) = "Picture" Then
Shape.Delete
End If
Next
End Sub
假设我已经点击了 PC Button 并且 Cells (2, 1) contains = 'PC'
如果我单击 US 按钮,宏应该执行以下操作。
Sub Button_US()
Application.ScreenUpdating = False
Application.EnableEvents = False
Cells(1, 1) = "US"
Call Delete_Pictures
If Cells(2, 1) = "PC" Then
Range("BP73:BX87").Select
Selection.Copy
With Worksheets("Main")
.Activate
.Range("Z7").Select
.Pictures.Paste(Link:=True).Select
End With
End If
Application.CutCopyMode = False
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
我想知道是否有办法纠正这个错误,或者是否有其他方法可以复制和粘贴范围而不会出现此类错误。
【问题讨论】:
-
Call Delete_Pictures是干什么用的?这不是从您希望从中复制图片的Range("BP73:BX87")的同一工作表中删除所有图片吗?