人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

エクセルマクロに関する質問です。(解決したら合計200P程度予定してます)

Range("M2:M20")に、
=L2/SUM($L$2:$L$20)
のような、全体に占める割合を出す式を各セル内に入れる時は、
Range("M2:M20") = "=RC[-1]/SUM(R2C12:R20C12)"
と、書けばいいと思うんですが、
一番最後のRowは常に変動ような場合(Range("M20")になったりRange("M135")になったりという感じ)、
どうやって書けばいいんでしょう???

※ForNextやDoLoopは使わない書き方を教えて下さい。


▼言い方を変えると次のような感じです▼

Columns("L")の、
最初のRow=2
から、
最後のRow=Range("A65536").End(xlUp).Row
までの合計に占める各セルの割合を
Columns("M")の各セルに入れ込みたい。


わかりにくい説明ですが。。。
どうぞよろしくお願いシマス!

●質問者: gsjapan
●カテゴリ:コンピュータ 学習・教育
✍キーワード:M2 RC エクセル セル マクロ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● airplant
●150ポイント

マクロで同じスタイルで書くとすれば、次のようになると思います。

ほとんどgsjapanさんのコードで解決しています。

Option Explicit

Sub rate()

 Dim sRow As String
 sRow = Range("L65536").End(xlUp).Row
 Range("M2", "M" & sRow) = "=RC[-1]/SUM(R2C12:R" & sRow & "C12)"

End Sub

なお、マクロよりシート上の関数でやったほうがいいかなと思います。

L列の合計をどこかのセルに入れて、名前を付ける。

普通に割り算をする。

◎質問者からの返答

希望通りの回答ですw

&の使い方がイマイチ苦手だったんで解決できて良かったです。

名前を付けるってのもやったこと無かったんですが、かなり便利ですね。

今後、多用させて頂きます。

いいヒントをありがとうございました♪


2 ● SALINGER
●30ポイント

M2セルの数式に

=L2/SUM($L$2:$L$65536)

を入れて下にコピー

◎質問者からの返答

あ。確かにこの数式でも質問の条件は満たしますねw

盲点でした・・・w

でももちろん正解ですので。今回もご回答。アリガトウございました!


3 ● nandedarou
●40ポイント

LastRow = Range("L" & Rows.Count).End(xlUp).Row

Range("M2:M" & LastRow).FormulaR1C1 = "=RC[-1]/SUM(R2C[-1]:R" & LastRow & "C[-1])"

上記の1行目で、L列の最後のセルの行(Row)をLastRowという変数に入れています。

上記の2行目で、そのLastRowの値を使っています。

いかがでしょうか?

◎質問者からの返答

なるほど。こんなLastRowの求め方もできるんですね。

参考になります&正解でした&ご回答ありがとうございました!

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ