VBA运行时错误1004 Microsoft Excel无法粘贴数据

我在VBA中有一些代码,我有几个国家和产品button。

我的目标是当我点击一个button时,单元格(1,1)将被“美国”,“CA”,“MX”和单元格(2,1)用“PC”,“打印机”

例如:如果单元格(1,1)= US然后select一个范围,复制范围,最后将其粘贴在同一张表中,但作为图片和不同的范围。

但是,我需要删除以前的图片,以取代它与新的一个。

它的工作原理,但有时它会出现一个消息,出现以下错误,不粘贴范围。

“运行时错误1004 – 微软的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)包含='PC'

如果我点击美国button,macros应该执行以下操作。

 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 

我想知道是否有办法纠正这个错误,或者是否有其他的方法来复制和粘贴一个范围没有这种错误。

我打赌这是。select。 看到这个线程如何避免使用。select,这可能会导致问题。

 Sub Button_US() Dim myPic As Picture Application.ScreenUpdating = False Application.EnableEvents = False Cells(1, 1) = "US" 'Call Delete_Pictures If Cells(2, 1) = "PC" Then Range("BP73:BX87").Copy With Worksheets("Main") Set myPic = .Pictures.Paste(Link:=True) myPic.Left = .Range("Z7").Left myPic.Top = .Range("Z7").Top ' .Range("Z7").Pictures.Paste(Link:=True).Select End With End If Application.CutCopyMode = False Application.ScreenUpdating = True Application.EnableEvents = True End Sub 

(另外,我从这个线索得到了一些见解)