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

コードからは、シート 1 からシート 2 に単純にコピーして貼り付けているように見えますが、シート 2 で下に移動する行ごとに、シート 1 で行を上に移動します。つまり、"=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 に答える