![](/img/trans.png)
[英]Runtime error 1004 Microsoft excel cannot paste the data in excel vba
[英]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.