我有以下代码,我试图将数据从一个工作表复制到另一个工作簿中。当我运行代码时,我得到运行时错误-438
Sub Copy()
Sheets("Sheet1").Range("A1:D20").Copy
Sheets("Sheet2").Activate
Range("E1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
答案 0 :(得分:2)
尝试以下代码。您不应该依赖激活和选择。
Sub ZCopy()
Sheets("Sheet1").Range("A1:D20").Copy
Sheets("Sheet1").Paste Destination:=Worksheets("Sheet2").Range("E1")
Application.CutCopyMode = False
End Sub
有趣的阅读
答案 1 :(得分:1)
您是否特别需要复制和粘贴?这可能是缓慢且低效的。如果您只是将数据从一个工作表复制到另一个工作表,则可以将一个范围的值设置为等于另一个范围的值,并避免全部。
Sheets("Sheet2").Range("E1:H20").Value = Sheets("Sheet1").Range("A1:D20").Value
这将把Sheet2上的单元格E1:H20的范围设置为与Sheet1上的A1:D20范围内的值相同的值,这实际上是复制和粘贴。我应该补充一点,这只适用于值本身。
如果您需要复制和粘贴特定格式(或公式),则此方法无效。