簡體   English   中英

運行時錯誤 - 438

[英]Run time Error - 438

我有以下代碼,我試圖將數據從一個工作表復制到另一個工作簿中。 當我運行代碼時,我得到運行時錯誤-438

Sub Copy()

Sheets("Sheet1").Range("A1:D20").Copy

Sheets("Sheet2").Activate

Range("E1").Select

ActiveSheet.Paste

Application.CutCopyMode = False

End Sub

請嘗試以下代碼。 您不應該依賴激活和選擇。

Sub ZCopy()
    Sheets("Sheet1").Range("A1:D20").Copy
    Sheets("Sheet1").Paste Destination:=Worksheets("Sheet2").Range("E1")
    Application.CutCopyMode = False
End Sub

有趣的讀物

  1. MSDN
  2. 如何避免在Excel VBA宏中使用Select

您是否特別需要復制和粘貼? 這可能是緩慢且低效的。 如果您只是將數據從一個工作表復制到另一個工作表,則可以將一個范圍的值設置為等於另一個范圍的值,並避免全部。

Sheets("Sheet2").Range("E1:H20").Value = Sheets("Sheet1").Range("A1:D20").Value

這將把Sheet2上的單元格E1:H20的范圍設置為與Sheet1上的A1:D20范圍內的值相同的值,這實際上是復制和粘貼。 我應該補充一點,這只適用於值本身。

如果存在需要復制和粘貼的特定格式(或公式),則此方法將不起作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM