我正在尝试使用变量'r'将表格从表格1复制到表格2。此变量是另一个程序的输出。当我使用下面的代码时,我收到错误的“应用程序已定义”错误。有人可以帮我这个。
Sheets("Sheet2").Range(Sheets("Sheet2").Cells(1, 2)).Value = Sheets("Sheet1").Range(Sheets("Sheet1").Cells(r, 2)).Value
Sheets("Sheet2").Range(Sheets("Sheet2").Cells(2, 2)).Value = Sheets("Sheet1").Range(Sheets("Sheet1").Cells(r + 1, 2)).Value
Sheets("Sheet2").Range(Sheets("Sheet2").Cells(3, 2)).Value = Sheets("Sheet1").Range(Sheets("Sheet1").Cells(r + 2, 2)).Value
Sheets("Sheet2").Range(Sheets("Sheet2").Cells(4, 2)).Value = Sheets("Sheet1").Range(Sheets("Sheet1").Cells(r + 3, 2)).Value
答案 0 :(得分:2)
你过度复杂,只需使用:
Sheets("Sheet2").Cells(1, 2).value = Sheets("Sheet1").Cells(r, 2).value
Sheets("Sheet2").Cells(2, 2).value = Sheets("Sheet1").Cells(r + 1, 2).value
Sheets("Sheet2").Cells(3, 2).value = Sheets("Sheet1").Cells(r + 2, 2).value
Sheets("Sheet2").Cells(4, 2).value = Sheets("Sheet1").Cells(r + 3, 2).value
错误是你使用Range
方法只有一个单元格作为参数,而它需要两个单元格并返回连接它们的范围。您可以使用它将代码进一步简化为一个语句:
Sheets("Sheet2").Range(Sheets("Sheet2").Cells(1, 2), Sheets("Sheet2").Cells(4, 2)).value = _
Sheets("Sheet1").Range(Sheets("Sheet1").Cells(r, 2), Sheets("Sheet1").Cells(r + 3, 2)).value
进一步说:
Sheets("Sheet2").Range("B1:B4").value = Sheets("Sheet1").Range("B" & r).Resize(4).value
答案 1 :(得分:0)
您还可以将多个值一次复制到多个区域:
[Sheet1!C1:C4,Sheet1!C6:C9] = [Sheet2!B2:B5].Value