|
▼igusukei さん:
>りすりすさん
>かみちゃん
>殆ど同じ時刻に回答頂いたのですね、お二方ご親切にありがとうございます。
>両方とも試して見ました、バッチリです!!
>かみちゃん、細かい指導ありがとうございます
>ActiveCell.FormulaR1C1 = これはR1C1 形式で と言う意味なんですね(^^;
>Range(endR + 1, L).Select ← これは恥ずかしいでした
>勉強になりました (^_^)
>
>そこで欲張って、さらに質問ですが…(図々しい ^^; )
>実は合計を出す列がたくさんあるのです、L列〜Q列まで(7つ)
>Sub Macro1()〜Sub Macro7() 作ればいいのですが、もっといい方法があるのではと…?
>関数で
>Function Totals(Col As Range)
>Dim encR As Long
>Sheets("Sheet1").Select
> endR = Range("A65536").End(xlUp).Row
> Range(Con & endR + 1).Select
> ActiveCell.Formula = "=SUM(Col&2:ol" & endR & ")"
>End Function
>
>この様にして、 Totals(L) で実行できないかと試しましたが、エラーでだめでした。
>このできると、Totals(L)〜Totals(Q) までを順に実行すれば、簡単かなとも思いました。考えているうちに For 〜 next 文で出来そうな気がしますが、どうやっていいものか…?
>その場合はたぶん R1C1形式にしないといけないのでしょうね?
>済みません、だんだん欲が出てきて難しくなりました(←自分には)
>また教えてください、よろしくお願いします。m(__)m
文字は ""の中が 文字になります
"=SUM(Col&2:ol"
とかいてあるものは
=SUM(Col&2:ol
になってしまいます
変数の前で 一度文字を 分離してあげるといいです
colが一箇所Conになっています
Totals(Col As Range)
は Rangeでなく
stringを使った方がいいと思います
ループはこんなのでいけると思います。
Dim i As Long
For i = UCase(Asc("l")) To UCase(Asc("q")) ' 小さい方を先に書く
Totals (Chr(i))
UCase: 大文字に変換 大文字小文字混在しても誤動作しないように
Asc: 文字を文字コード(数字)に変換
Chr: 文字コードを 文字に変換
|
|