プロが教えるわが家の防犯対策術!

マクロ初心者です。
【】はシート名です。

【テスト2】のB7に、【テスト1】のオートフィルターをかけたAC列を合計した値を入力し、
その後C7,D7と同様にAC列の合計値を入力したいと考えています。
しかし、下記のようにVBAを組むと、中断してしまい上手くいきません。
正しいVBAの組み方をご教授いただけますでしょうか。

また、本当はAC列を絶対参照したVBAを組みたいのですが、
方法がわからず、下記のような組み方になっています。
AC列を絶対参照にして組む方法も教えていただきたけますでしょうか。
--------------------

Dim i As Long
For i = 1 To 12
Worksheets("テスト1").Range("$A$1:$XFD$1048576").AutoFilter Field:=1, Criteria1:="4月"
Worksheets("テスト2").Cells(7, 1 + i) = "=subtotal(9,テスト1!C28 - i)"

-------------------

よろしくお願いいたします。

A 回答 (1件)

こんな感じでしょうか?


勘違いがあったらすみません。

-------------------------------------
Dim target As Range
Dim srcArea As Range

' 最初の計算結果を書き込むセル
Set target = Worksheets("テスト2").Range("B7")
' 最初のSubTotal対象範囲
Set srcArea = Worksheets("テスト1").Range("AC:AC")

Worksheets("テスト1").Range("A:XFD").AutoFilter Field:=1, Criteria1:="4月"

' 書き込むセルが J列になるまで繰り返す
Do While (target.Column < 14)
' 計算範囲の合計を指定セルに書く
target.Value = WorksheetFunction.Subtotal(9, srcArea)
' 計算結果を書き込むセルを右へずらす
Set target = target.Offset(0, 1)
' SubTotal対象範囲を左へずらす
Set srcArea = srcArea.Offset(0, -1)
Loop
    • good
    • 0

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