[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『【マクロ】可視セルのみを合計してその結果を行の最下部に入力』(トイレの女神)
こんにちはm(_ _)m
本日連投失礼します。
またマクロでエラーが起こってしまったので
力を貸してもらえると助かります!
やりたいこと
・列の最下行に可視セルのみを足し算した結果を入力
エラーになったコード
Dim dondon As Variant '型もどれにすればよいかわからず、とりあえずVariant型にしました... dondon = Cells(Rows.Count, "A").End(xlUp).Row + 1 Range(dondon) = WorksheetFunction.Subtotal(9, Columns(1))'ここが黄色になります
エラー
・rangeクラスのメソッドは失敗しました globalオブジェクト
シートを指定してあげてないからかと思って
シート指定を頭にRangeのまえにくっつけてみたのですが
エラーになってしまいました。。
どなたかまたお力添えください(;_;)
< 使用 Excel:Excel2013、使用 OS:Windows7 >
Rangeでセル指定は Range("A1") Range("A1:A10") のようにセルアドレスを文字列で与えるか Range(Cells(1,1),Cells(1,5)) のように始端セルと終端セルを与えるかになる。
(ねむねむ) 2018/09/06(木) 15:17
で Cells(Rows.Count, "A").End(xlUp).Row + 1 はA列の最終行の次の行番号(数値)を意味するので Range(dondon) は Range(10) のような指定を行っていることになり、エラーとなっている。 (ねむねむ) 2018/09/06(木) 15:19
そもそも Cells(Rows.Count, "A").End(xlUp) でA列で最終行のセルを求められるのでその下のセルは Cells(Rows.Count, "A").End(xlUp).Offset(1,0) となるのでここに WorksheetFunction.Subtotal(9, Columns(1)) を代入すればいい。 (ねむねむ) 2018/09/06(木) 15:22
Cells(Rows.Count, "A").End(xlUp).Offset(1, 0) = _ WorksheetFunction.Subtotal(9, Columns(1).SpecialCells(xlCellTypeVisible))
(TAKA) 2018/09/06(木) 15:46
非表示行というのがオートフィルタで非表示になっているのであればこれでOK。 もし、オートフィルタではなく行を非表示にした場合も計算対象外にする場合は >Subtotal(9, Columns(1)) の9を109に。
(ねむねむ) 2018/09/06(木) 15:48
これでOKというのはもともとの WorksheetFunction.Subtotal(9, Columns(1)) で。 (ねむねむ) 2018/09/06(木) 15:54
なんだか理解がいまいち追いついてないですが
まとめると
Cells(Rows.Count, "A").End(xlUp).Offset(1,0) = WorksheetFunction.Subtotal(9, Columns(1))
こんな感じですかね!!
エラー出なくなりました!ありがとうございます(^O^)
実はお察しいただいている通り、
直前に手動でオートフィルタをかけてまして、、、
実データがA列はA1641まで入っているので
マクロを使うとA1642に数を入れてくれるようになりましたが
オートフィルタがかかっている状態だと
可視セルが4709行目になっていたので4710行目に合計が入るように調整してあげたいです...
(変動するかもしれないので常に可視出来ているA列の最下セルにデータが入ると助かります!!)
なにかいい方法はないでしょうか??
(トイレの女神) 2018/09/06(木) 16:08
=SUBTOTAL(9,A2:A4709) の式が入るので次からはフィルタをかけるだけで合計もかわります。 (TAKA) 2018/09/06(木) 16:21
おはようございます☀
実はこのあとオートフィルタもマクロ化する予定でして、、、
一旦、結果をメッセージボックスで出して、
手動でコピペすることにしましたm(_ _)m
ありがとうございました♪
(トイレの女神) 2018/09/07(金) 10:04
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.