アプリ版:「スタンプのみでお礼する」機能のリリースについて

マクロ初心者です。
フィルタオプションをマクロに登録しました。
検索範囲はマクロを登録したときの表の範囲(A5:Q50)になっていますが
データは毎日増えるため(A5:Q10000)に変更して抽出自体はうまくいきましたが、
リストで最終行に金額の合計を出しているのですがそれが表示されなくなります。
抽出時の最終データでフィルタオプションを実行するマクロをするにはどうしたらよいでしょうか?
質問がわかりにくくてすみません。
フィルタオプションの部分のマクロは下記です。
よろしくお願いいたします。

Range("A5:Q10000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("A1:B3"), Unique:=False

A 回答 (3件)

こんにちは。



>リストで最終行に金額の合計を出しているのですがそれが表示されなくなります。

数式までを、フィルタオプションが取り込んでしまうわけです。それで、いろいろ考えてみました。合計値の位置は常に変るものだという前提で、数式がない場合は、数式を加えるようにしてみました。

'なるべく標準モジュールがよいと思います。
'-------------------------------------------
Sub FilterOptionUsed()
Dim LastRow As Long
Dim iFlg As Integer
  Application.ScreenUpdating = False
  LastRow = Range("A65536").End(xlUp).Row
   If Cells(LastRow, 1).HasFormula Then
     iFlg = 1
   End If
 With Range(Cells(5, 1), Cells(LastRow - iFlg, 17))
    .AdvancedFilter _
    Action:=xlFilterInPlace, _
    CriteriaRange:=Range("A1:B3"), _
    Unique:=False
  If iFlg <> 1 Then
   .Rows(.Rows.Count + 1).FormulaLocal = "=SUBTOTAL(9,R5C:R[-1]C)"
  End If
  End With
 Application.ScreenUpdating = True
End Sub

こんな方法しかないかなって、今思っています。
    • good
    • 0
この回答へのお礼

詳しくお答えいただいてありがとうございました。
とても助かりました。

お礼日時:2006/02/25 01:11

こんにちは。



ということは集計行の一行上までを範囲にすればいいわけですから次のようにします。

---------------------------------------------
Sub test()

 Dim LastRow As Long

 LastRow = Range("A65536").End(xlUp).Row - 1

 Range("A5:Q" & LastRow").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("A1:B3"), Unique:=False

End Sub
------------------------------------------------

Range("A65536").End(xlUp).Row でリストの(A列の)最終行が求められます。

以上です。
 
    • good
    • 0
この回答へのお礼

taocat様
出来ました、感謝です。
質問が初めてでどう聞いていいかわからない私の未熟な文面を理解してくださって本当に助かりました。
ありがとうございました。

お礼日時:2006/02/24 15:37

>リストで最終行に金額の合計を出しているのですがそれが表示されなくなります。


最終行にもフィルタがかかって表示されないのだと思います。
先頭行の前か、最終行の次の行に合計(SUBTOTAL())を入れるのが普通だと思います。

この回答への補足

早速お返事ありがとうございます。
リストの機能なので自動的に最終行にSUBTOTALが入って合計してくれています。
フィルタオプションの検索範囲指定のときにデータの最終行をきちんと指定すれば大丈夫なのです。(手動ならば大丈夫です)
マクロでフィルタオプションを登録すると登録時のデータの範囲が記録されてしまうので、追加したデータにフィルタオプションがかからない状態になってしますのです。
うまく説明できなくてすみません。
ありがとうございます。

補足日時:2006/02/24 13:39
    • good
    • 0

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