将工作表中的范围复制到另一个工作表VBA

时间:2017-07-03 14:35:46

标签: excel vba excel-vba

我正在尝试使用VBA将范围从一个工作表复制到另一个工作表但尝试粘贴时失败。我尝试了几种方法,但没有运气。我创建了一个示例代码段,在最后一行上失败以进行粘贴。我收到的错误是"运行时错误' 1004':应用程序定义的错误或对象定义的错误。"有人可以解释一下为什么会失败以及我能做些什么呢?

import numpy as np 
a = [1,2,3]
b = np.array(a)
print(a,b)

提前致谢,

迈达斯

2 个答案:

答案 0 :(得分:1)

这对你有什么用?

Sub Test()
Dim report_ws As Worksheet, archived_ws As Worksheet
Dim copyRng As Range, pasteRng As Range

report_row = 2
report_executive_column = 6
report_column_last = 10
archived_report_row = 3
archived_executive_column = 6

Set report_ws = Sheets("30-Day Pipeline")
Set archived_ws = Sheets("Archived 30 Day Pipeline")

With archived_ws
    Set copyRng = .Range(.Cells(archived_report_row, archived_executive_column), .Cells(archived_report_row, archived_report_column + 4))
End With

With report_ws
    Set pasteRng = .Range(.Cells(report_row, report_executive_column), .Cells(report_row, report_column_last))
End With

copyRng.Copy pasteRng

Application.CutCopyMode = False

End Sub

在原始代码中,您正确地将工作表添加到您想要的Range() ...但是,如果Cells(),您还需要使用Range()执行此操作该工作表是活动的工作表。另外,我上面的代码有点冗长,但我觉得它很好,因为它非常明确,你可以希望看到它会更好一点。

答案 1 :(得分:0)

首先,选择您的源表(第1行)。然后选择要复制的范围(第2行)。执行复制命令(第3行)。选择目标表(第4行)。选择目的地范围(第5行)。然后粘贴(第6行)。

Sheets("Sheet1").Select
Range("A1:B3").Select
Selection.Copy
Sheets("Sheet2").Select
Range("A5:B7").Select
ActiveSheet.Paste

在我的示例中,只需将值替换为简单范围。