我正在尝试使用VBA将范围从一个工作表复制到另一个工作表但尝试粘贴时失败。我尝试了几种方法,但没有运气。我创建了一个示例代码段,在最后一行上失败以进行粘贴。我收到的错误是"运行时错误' 1004':应用程序定义的错误或对象定义的错误。"有人可以解释一下为什么会失败以及我能做些什么呢?
import numpy as np
a = [1,2,3]
b = np.array(a)
print(a,b)
提前致谢,
迈达斯
答案 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
在我的示例中,只需将值替换为简单范围。