我录制了一个宏来引用Sheet1上的数据并将其拉到Sheet2。
我需要继续,直到Sheet1(或第209行)上没有更多数据。
Sub Macro1()
Range("A1").Select
ActiveCell.FormulaR1C1 = "=Sheet1!RC"
Range("A2").Select
ActiveCell.FormulaR1C1 = "=Sheet1!R[-1]C"
Range("A3").Select
ActiveCell.FormulaR1C1 = "=Sheet1!R[-2]C"
Range("A4").Select
ActiveCell.FormulaR1C1 = "=Sheet1!R[-2]C"
Range("A5").Select
ActiveCell.FormulaR1C1 = "=Sheet1!R[-3]C"
Range("A6").Select
ActiveCell.FormulaR1C1 = "=Sheet1!R[-4]C"
Range("A7").Select
End Sub
答案 0 :(得分:0)
从您的代码看起来,您只是从Sheet1复制并粘贴到Sheet2,但是对于Sheet2中的每一行,您在Sheet1中向上移动一行。换句话说,"=Sheet1!R[-x]C"
使得它看起来像是在x行上升。
您的代码显示的是逐步选择每个单元格然后更改它的过程。为什么不一次完成这一切without the .Select statments?
例如,For...Next
循环可以执行此操作:
For i = 1 To 209
Worksheets("Sheet2").Cells(210 - i, 1).Value = _
Worksheets("Sheet1").Cells(i, 1).Value
Next
直接复制单元格的内容(.Value属性)。