Excel VBA質問箱 IV

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

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


3278 / 13645 ツリー ←次へ | 前へ→

【63144】入力したセル範囲まで取得 YUKI 09/10/10(土) 19:46 質問[未読]
【63155】Re:入力したセル範囲まで取得 Stitch 09/10/11(日) 9:09 回答[未読]
【63157】Re:入力したセル範囲まで取得 YUKI 09/10/11(日) 17:12 発言[未読]
【63158】Re:入力したセル範囲まで取得 りん 09/10/11(日) 17:27 発言[未読]
【63160】Re:入力したセル範囲まで取得 YUKI 09/10/11(日) 21:16 質問[未読]
【63161】Re:入力したセル範囲まで取得 りん 09/10/11(日) 21:23 発言[未読]
【63162】Re:入力したセル範囲まで取得 YUKI 09/10/11(日) 21:30 回答[未読]

【63144】入力したセル範囲まで取得
質問  YUKI  - 09/10/10(土) 19:46 -

引用なし
パスワード
   ある計算のマクロを記録下のですが困ってます
記録したマクロ↓
Sub
'データの合計値を取得 
 ActiveCell.FormulaR1C1 = "=SUM(Sheet1!R[-2]C[19]:R[-2]C[38])"

'データの平均値取得
  Range("C3").Select
  ActiveCell.FormulaR1C1 = "=RC[-1]/Sheet1!R[-2]C[38]"
  Range("C4").Select

'合計値と平均値のセルを指定して選択範囲の右下の+マークを下へドラッグ(連続データ作成)
  Range("B3").Select
  Selection.AutoFill Destination:=Range("B3:B12"), Type:=xlFillDefault
  Range("B3:B12").Select
  Range("C3").Select
  Selection.AutoFill Destination:=Range("C3:C12"), Type:=xlFillDefault
  Range("C3:C12").Select

問題となっている箇所は連続データ作成の箇所です
今回はB12やC12までとなっているが合計値が0になるまでを連続データ作成したいです.何か方法はありますか?

他の方法として,セルの値があるまで計算などがあれば教えてください

【63155】Re:入力したセル範囲まで取得
回答  Stitch  - 09/10/11(日) 9:09 -

引用なし
パスワード
   B列に合計値が入っていて、C3の計算式を
下方にコピーしていくのであれば、

Sub 連続作成()
  Dim i As Long
  
  i = 4      ’4行目から貼り付け
  Do While Cells(i, 2).Value <> 0
    Cells(i, 3).FormulaR1C1 = Cells(i - 1, 3).FormulaR1C1
    i = i + 1
  Loop
  
End Sub

で、出来ませんか?

【63157】Re:入力したセル範囲まで取得
発言  YUKI  - 09/10/11(日) 17:12 -

引用なし
パスワード
   うまくできませんでした
参考にしていろいろやってみます

ありがとうございました

【63158】Re:入力したセル範囲まで取得
発言  りん E-MAIL  - 09/10/11(日) 17:27 -

引用なし
パスワード
   YUKI さん、こんばんわ。
>うまくできませんでした

こういうことですか?
Sub test()
  Dim RR As Long
  'データの合計値を取得([B3]=SUM(U1:AN1) ?)
  Range("B3").FormulaR1C1 = "=SUM(Sheet1!R[-2]C[19]:R[-2]C[38])"
  'データの平均値取得([C3]=B3/AO1 ?)
  Range("C3").FormulaR1C1 = "=RC[-1]/Sheet1!R[-2]C[38]"
  'AO列の最下行
  RR = Range("AO" & Rows.Count).End(xlUp).Row
  '合計値と平均値のセルを指定して選択範囲の右下の+マークを下へドラッグ(連続データ作成)
  Range("B3:C" & RR + 2).FillDown
End Sub

【63160】Re:入力したセル範囲まで取得
質問  YUKI  - 09/10/11(日) 21:16 -

引用なし
パスワード
   りんさん、こんばんわ。
書き込みありがとうございます
今回もうまくできませんでした
B3とC3に合計値と平均値を表示もしません
疑問に思ったのがRRのAO列の最下位まで数える処理を,シート1のAO列の最下位まで数えるほうがいいのかと思ったのですがどうすればいいのですか

>Sub test()
>  Dim RR As Long
>  'データの合計値を取得([B3]=SUM(U1:AN1) ?)
>  Range("B3").FormulaR1C1 = "=SUM(Sheet1!R[-2]C[19]:R[-2]C[38])"
>  'データの平均値取得([C3]=B3/AO1 ?)
>  Range("C3").FormulaR1C1 = "=RC[-1]/Sheet1!R[-2]C[38]"
>  'AO列の最下行
>  RR = Range("AO" & Rows.Count).End(xlUp).Row
>  '合計値と平均値のセルを指定して選択範囲の右下の+マークを下へドラッグ(連続データ作成)
>  Range("B3:C" & RR + 2).FillDown
>End Sub

【63161】Re:入力したセル範囲まで取得
発言  りん E-MAIL  - 09/10/11(日) 21:23 -

引用なし
パスワード
   YUKI さん、こんばんわ。

>B3とC3に合計値と平均値を表示もしません
>疑問に思ったのがRRのAO列の最下位まで数える処理を,シート1のAO列の最下位まで数えるほうがいいのかと思ったのですがどうすればいいのですか
式を書くシートとデータの入っているシートは別なんですか?

>>Sub test()
>>  Dim RR As Long
>>  'データの合計値を取得([B3]=SUM(U1:AN1) ?)
'式の対象のシートはSheet1
>>  Range("B3").FormulaR1C1 = "=SUM(Sheet1!R[-2]C[19]:R[-2]C[38])"
>>  'データの平均値取得([C3]=B3/AO1 ?)
>>  Range("C3").FormulaR1C1 = "=RC[-1]/Sheet1!R[-2]C[38]"
>>  'AO列の最下行

   RR = Worksheets("Sheet1").Range("AO" & Rows.Count).End(xlUp).Row
>>  '合計値と平均値のセルを指定して選択範囲の右下の+マークを下へドラッグ(連続データ作成)
>>  Range("B3:C" & RR + 2).FillDown
>>End Sub

これでどうでしょう?

【63162】Re:入力したセル範囲まで取得
回答  YUKI  - 09/10/11(日) 21:30 -

引用なし
パスワード
   りんさん、ありがとうございます。
わかりにくい書き込みですいませんでした
式を各シートとデータの入ってるシートは別でした
今回のでうまくできました.ありがとうございます

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