繁体   English   中英

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

[英]vba runtime error 1004 microsoft excel cannot paste the data

我在VBA中有一些代码,有一些“国家/地区”和“产品”按钮。

我的目标是当我单击按钮时,单元格(1,1)将被诸如“ US”,“ CA”,“ MX”之类的文本覆盖,而单元格(2,1)将被“ PC”,“打印机”

示例:如果单元格(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按钮,并且单元格(2,1)包含='PC'

如果单击“美国按钮”,则宏应执行以下操作。

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 ,请参.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

(此外,我从该线程中获得了一些见识)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM