【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?

いつもいつもいつも皆様には大変お世話になっております。

早速本題ですが
オートフィルターでフィルターをかけた物の 足し算はSUBTOTALですよね。

そこからが問題なのですが、
SUBTOTALででた合計をVBAでコピーして貼り付けをしたいのです。
その貼り付け場所は 別のシートになります。
ちなみに作ってみたのはこんな感じです

Windows("表.xls").Activate
DATA = Range("A1:N1002")
With Range("B4")
.AutoFilter
.AutoFilter Field:=3, Criteria1:="A店"
.AutoFilter Field:=2, Criteria1:=">=" & Z , _
Operator:=xlAnd, Criteria2:="<=" & V

End With
Windows("B表.xls").Activate
Cells(7, 3) = DATA(1002, 8)  '1002のところがSUBTOTAL関数が入ってます。

これでコピーをするとB表にでて来る数字が、通常のSUMで全体を出した答えが入ってくるのです;;

SUBTOTALの出た数字がほしいのです・・・;;
こういったことは出来るでしょうか?
宜しくお願い致します。

A 回答 (2件)

>DATA = Range("A1:N1002")


この部分の必要性が質問からではわからないので違っているかもしれませんが

>Windows("B表.xls").Activate
>Cells(7, 3) = DATA(1002, 8)

この部分を単純に

Workbooks("B表.xls").Sheets(1).Cells(7,3) = Workbooks("表.xls").Sheets(1).Cells(1002,8)

でご希望の結果が得られると思います。
(シート名は実際のものを使ってください)
    • good
    • 0
この回答へのお礼

お返事ありがとうございます
ん~ どうして自分の作ったのはだめで
takiboさんの作ったVBAが動くのかがさっぱりわかりません;;
内容的には、変わらないと思っていたのですが・・・
どちらにしても takiboさんのでばっちり動いたので、これで完成させることが出来ます。
ありがとうございました。

お礼日時:2005/02/17 18:24

>DATA = Range("A1:N1002")



で配列に値を代入した後に、フィルターでSUBTOALの値が変化したとしても、配列の値は変化しません。

>Cells(7, 3) = DATA(1002, 8)←ココ

ここで、配列DATA(1002,8)に格納されたデータはフィルターをかける前のデータだからですね。

したがって、
DATA(1002,8) の部分を Cells(1002, 8) にして変化後の数値を参照します。Cells(1002, 8)の前に、シートの指定が必要かもしれませんが。
    • good
    • 0
この回答へのお礼

OH!!
そういう事でしたか!!
納得いたしました。
自分の分からないところまで回答していただきありがとうございます。
これを参考にまだまだがんばります!

お礼日時:2005/02/17 18:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!