繁体   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