web-dev-qa-db-ja.com

Excel:テーブルのコピーと貼り付け、作成のための単純なDoループ

次の簡単な(と思います!)Doループを実行したいと思います。私の簡単なプログラムは思い通りに機能しますが、1000回繰り返したいので、もっと簡単な方法があると思います。おそらく何らかのループを使用していますか? Do-Loopなど。要するに私はしたいです:

  1. a1から内容をコピーする
  2. それらをB1に貼り付けます
  3. セルC1をコピーします(B1に作用する単純な数式があります)
  4. 「値」(のみ)をC1からD1にコピーします(これはそのような値のテーブルになります)

A1からA1000に対してこれを行い、値のテーブルD1、D2、...、D1000(おそらく正方形のテーブルとして)を取得します。セルB1とC1は固定されたままです。

私のプログラムは以下の通りです:

Sub PasteSpecial_Examples()

    Range("A1").Copy Range("B1")
    Range("C1").Copy
    Range("D1").PasteSpecial Paste:=xlPasteValues

    Range("A2").Copy Range("B1")
    Range("C1").Copy
    Range("D2").PasteSpecial Paste:=xlPasteValues

    Range("A3").Copy Range("B1")
    Range("C1").Copy
    Range("D3").PasteSpecial Paste:=xlPasteValues

    Range("A4").Copy Range("B1")
    Range("C1").Copy
    Range("D4").PasteSpecial Paste:=xlPasteValues


    Application.CutCopyMode = False

End Sub
1
user869299

単純なFor ... Nextループが必要です。

Sub PasteSpecial_Examples()

  For i = 1 To 1000
    Range("A" & i).Copy Range("B1")
    Range("C1").Copy
    Range("D" & i).PasteSpecial Paste:=xlPasteValues
  Next i

  Application.CutCopyMode = False

End Sub
1
Mario J.