• ベストアンサー

選択範囲に関する質問

いつもお世話になっております。 初歩的な質問だと思いますが宜しくお願い致します。 リストでA列にデータが並んでいます。BとC列に数字があり、 B列に新しい列を入れて Range("B2").Select ActiveCell.FormulaR1C1 = "=SUM(RC[1]:RC[2])" こちらをAのデータが入ってる行数までペーストさせたいのですが、 どうしたらデータが入ってる行数までペーストさせるマクロを組み込めるでしょうか? Range("A2").End(xlDown).Rowなどで最終行まで調べることは出来るのですが、 Select、Copyの場合はどのように入れたら宜しいでしょうか? 自分で調べてみていろいろやってみましたのですが上手く行きませんでした…

質問者が選んだベストアンサー

  • ベストアンサー
  • myRange
  • ベストアンサー率71% (339/472)
回答No.2

Aのデータが入ってる行数までB列に式を入れたいということですね。 '----------------------------- Sub test()   Dim LastRow As Long   LastRow = Cells(Rows.Count, "A").End(xlUp).Row   Range("B2:B" & LastRow).FormulaR1C1 = "=SUM(RC[1]:RC[2])" End Sub '---------------------------- >B列に新しい列を入れて これはどういうことでしょうか。 式を入れるのは、手動でB列の前に1列挿入したあとでしょうか。 それとも、B列挿入もコードでやるのでしょうか。 それなら、コードの先頭に列挿入の   Columns("B:B").Insert Shift:=xlToRight これを入れてください。 以上です。

DEC2010
質問者

お礼

わかりやすいコードを有難うございます。 おかげで無事に動きました。他に応用が出来て とても助かりました。 説明が上手く出来てなかったようで申し訳ありませんでした。

その他の回答 (1)

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>こちらをAのデータが入ってる行数までペーストさせたいのですが、 設定が曖昧です。 Aというデータある行まで? A列のデータ行全て? 全てなら、 Range(Range("A2"),Range("A2").End(xlDown).Row).Selct Select を省略して、下記で可能です。 Range(Range("A2"),Range("A2").End(xlDown).Row).FormulaR1C1 = "=SUM(RC[1]:RC[2])"

DEC2010
質問者

お礼

説明が上手く出来てなくて申し訳ありませんでした。 B列にあるB2のSUMをA列のデータが入っている行数までペーストしたかったのです。 こちらの回答は参考になり応用が利きそうです。 回答有難うございました。

関連するQ&A

専門家に質問してみよう