簡體   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