Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8869 / 13644 ツリー ←次へ | 前へ→

【30585】毎月行数の違うデータを最終行まで合計し... あかつき 05/10/31(月) 14:26 質問[未読]
【30586】Re:毎月行数の違うデータを最終行まで合計... tbtk 05/10/31(月) 14:43 回答[未読]
【30604】Re:毎月行数の違うデータを最終行まで合計... ponpon 05/10/31(月) 19:40 発言[未読]
【30606】Re:毎月行数の違うデータを最終行まで合計... Mi 05/10/31(月) 20:58 発言[未読]
【30624】Re:毎月行数の違うデータを最終行まで合... あかつき 05/11/1(火) 13:24 お礼[未読]

【30585】毎月行数の違うデータを最終行まで合計し...
質問  あかつき  - 05/10/31(月) 14:26 -

引用なし
パスワード
   はじめまして。VBA初心者のため、こちらを拝見しながら、いつも勉強させていただいております。

   (列)   A      B   C   D     E     F
(行)     ユニット名    日  時        データ1 データ2
 1      A      1   0         100   200
 2      A      1   1         123   400
 3      A      1   2         234   468
 ・・・
4664      F      30  22         450   158
4665      F      30  23         340   245

データは毎月、上記のように出力されます。(なので、最終行が月ごとに違います)
D列の各行にE+Fの値を入れようとしているのですが、

With Range("D1")
    .FormulaR1C1 = "=RC[1]+RC[2]"
    .AutoFill Destination:=Range("D1", Range("D1").End(xlDown))
  End With

とすると、データのある4665行よりも下の、65533行までD列に延々0が入ってしまいます。


With Range("D1")
  .FormulaR1C1 = "=RC[1]+RC[2]"
  .AutoFill Destination:= _
    Range("A1", Range("A1").End(xlDown)).Offset(, 3)
End With

また、上記のようにすると、「RangeクラスのAutofillメソッドが失敗しました」というメッセージが表示されてしまい、処理できません。

どうやったらデータ行のあるところまでで計算式を止められるでしょうか。
どうぞよろしくお願いいたします。

【30586】Re:毎月行数の違うデータを最終行まで合...
回答  tbtk  - 05/10/31(月) 14:43 -

引用なし
パスワード
   はじめまして私も初心者なのでもっといい方法があるかもしれませんが
私が使用しているのと似ているので参考になれば
Dim A As Integer
Dim B As Integer
  A = Range("A65536").End(xlUp).Row
  For B = 1 TO A
    Cells(B, 4) = Cells(B, 5) + Cells(B, 6)
  Next B

   (列)   A      B   C   D     E     F
(行)     ユニット名    日  時        データ1 データ2
 1      A      1   0         100   200
 2      A      1   1         123   400
 3      A      1   2         234   468
 ・・・
4664      F      30  22         450   158
4665      F      30  23         340   245
間違い等があったらすみません。

【30604】Re:毎月行数の違うデータを最終行まで合...
発言  ponpon  - 05/10/31(月) 19:40 -

引用なし
パスワード
   こんばんは。
1行目は、項目ですよね。
これでもできそうです。

Sub test()
 Dim myR As Range
 
 Set myR = Range("A2", Range("A65536").End(xlUp))
  myR.Offset(0, 3).Value = "=SUM(E2:F2)"
 Set myR = Nothing
End Sub

【30606】Re:毎月行数の違うデータを最終行まで合...
発言  Mi  - 05/10/31(月) 20:58 -

引用なし
パスワード
   ▼あかつき さん:

今晩は。
試してみてください。

Sub Macro()
  Range("D1").FormulaR1C1 = "=RC[1]+RC[2]"
  Range("D1").AutoFill Destination:=Range("D1:D" & _
    Cells.SpecialCells(xlCellTypeLastCell).Row)
End Sub

【30624】Re:毎月行数の違うデータを最終行まで合...
お礼  あかつき  - 05/11/1(火) 13:24 -

引用なし
パスワード
   tbtkさん、ponponさん、Miさん、丁寧な回答をありがとうございます!
教えていただいた方法を全部試してみたのですが、できました!
これでやっと次の作業に入れます。
悩みに悩んでいたので、本当にうれしいです。
ありがとうございました!

8869 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free