【问题标题】:vba runtime error 1004 microsoft excel cannot paste the datavba 运行时错误 1004 microsoft excel 无法粘贴数据
【发布时间】: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

我想知道是否有办法纠正这个错误,或者是否有其他方法可以复制和粘贴范围而不会出现此类错误。

【问题讨论】:

标签: vba excel


【解决方案1】:

我打赌它是.Select。请参阅this thread,了解如何避免使用可能导致问题的.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

(另外,我从this thread得到了一些见解)

【讨论】:

  • 你是对的。使用 .Select 给我带来了问题。我已经有几个小时使用您的代码并且没有出现错误。
猜你喜欢
  • 1970-01-01
  • 2013-01-25
  • 2017-11-28
  • 1970-01-01
  • 2020-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多