[[20140715164443]] 『各シートの指定セルにSubtotalの数字を入れたい』(まゆ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『各シートの指定セルにSubtotalの数字を入れたい』(まゆ)

 エクセルのマクロのSubtotalにについて(マクロは初心者です)
 
1つのブックに複数のワークシートがあります。
ワークシートの数はブックによって変わります。
 
各ブックの構成は左から
マクロ用シート/元データのシート/ワークシート1/ワークシート2・・・続く
ワークシート1や2の構成は同じですが、行数が変わります。
 
ここで質問なのですが、ワークシート1、2・・・のセル(例えばA1)に合計金額を入れたいです。
 
手順としては
(1)対象列の対象文字でオートフィルタ
(2)オートフィルタしたもので合計金額を出す
(3)セルに金額を転記
 
このような形です。
 
以下マクロ内容
 
    Dim sh As Worksheet
    For Each sh In Worksheets
        If Not sh.AutoFilterMode Then sh.Range("A2").AutoFilter field:=19, Criteria1:="○"
        Range("A1").Value = WorksheetFunction.Subtotal(9, Range("F:F"))
    Next
 
オートフィルタはかかっているのですが、合計金額がワークシート1にしか反映されません。
わかりにくい文章で申し訳ありませんが、よろしくお願いします。

< 使用 Excel:Excel2013、使用 OS:Windows7 >


 丸文字とインデントが読みずらかったので、勝手ながら少し整形させていただきました。

 Sub Sample()
    Dim sh As Worksheet
    For Each sh In Worksheets
        If sh.Index > 1 Then
            If Not sh.AutoFilterMode Then sh.Range("A2").AutoFilter field:=19, Criteria1:="○"
            sh.Range("A1").Value = WorksheetFunction.Subtotal(9, sh.Range("F:F"))
        End If
    Next
 End Sub

 処理にシート修飾をつけてうまくいかないでしょうか。

(Mook) 2014/07/15(火) 17:23


Mook様 返答ありがとうございます。

申し訳ありません。少し勘違いをして投稿しておりました。
投稿したマクロではオートフィルタがかかりませんでした。

(1)
ワークシート1/ワークシート2・・・
の状態でしたら、書き込んだマクロで全てのワークシートにオートフィルタがかかります。

(2)
マクロ用シート/元データのシート/ワークシート1/ワークシート2・・・
のように、最初の2つのワークシート(構成が違う)がありますとエラーが出てしまいます。

書いていただいたものですと、(1)と同じ結果になってしまいます。

ブックは(2)の形になりますので、左のシートの3番目から最後のシートまで選択し、オートフィルタ、
Subtotalの金額を記入

これを実行できるマクロはありますでしょうか。
(まゆ) 2014/07/15(火) 17:44


        If sh.Index > 1 Then
 を
        If sh.Index > 2 Then
 としてもダメでしょうか。
(Mook) 2014/07/15(火) 18:22

Mook様

無事にできました。
とても助かりました。
ありがとうございます!
(まゆ) 2014/07/16(水) 16:48


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.