0

我录制了一个宏来引用 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
4

1 回答 1

0

从您的代码看来,您只是从 Sheet1 复制和粘贴到 Sheet2,但是对于您在 Sheet2 中向下的每一行,您在 Sheet1 中向上移动一行。换句话说,"=Sheet1!R[-x]C"让它看起来像你正在上升 x 行。

您的代码显示的是选择每个单元格然后更改它的分步过程。为什么不使用 .Select 语句一次完成这一切呢?

例如,一个For...Next循环可以这样做:

For i = 1 To 209
  Worksheets("Sheet2").Cells(210 - i, 1).Value = _
    Worksheets("Sheet1").Cells(i, 1).Value
Next

这会直接复制单元格的内容(.Value 属性)。

于 2013-09-05T19:12:35.573 回答