
マクロ初心者です。
フィルタオプションをマクロに登録しました。
検索範囲はマクロを登録したときの表の範囲(A5:Q50)になっていますが
データは毎日増えるため(A5:Q10000)に変更して抽出自体はうまくいきましたが、
リストで最終行に金額の合計を出しているのですがそれが表示されなくなります。
抽出時の最終データでフィルタオプションを実行するマクロをするにはどうしたらよいでしょうか?
質問がわかりにくくてすみません。
フィルタオプションの部分のマクロは下記です。
よろしくお願いいたします。
Range("A5:Q10000").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("A1:B3"), Unique:=False
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.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
こんな方法しかないかなって、今思っています。
No.2
- 回答日時:
こんにちは。
ということは集計行の一行上までを範囲にすればいいわけですから次のようにします。
---------------------------------------------
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列の)最終行が求められます。
以上です。
taocat様
出来ました、感謝です。
質問が初めてでどう聞いていいかわからない私の未熟な文面を理解してくださって本当に助かりました。
ありがとうございました。
No.1
- 回答日時:
>リストで最終行に金額の合計を出しているのですがそれが表示されなくなります。
最終行にもフィルタがかかって表示されないのだと思います。
先頭行の前か、最終行の次の行に合計(SUBTOTAL())を入れるのが普通だと思います。
この回答への補足
早速お返事ありがとうございます。
リストの機能なので自動的に最終行にSUBTOTALが入って合計してくれています。
フィルタオプションの検索範囲指定のときにデータの最終行をきちんと指定すれば大丈夫なのです。(手動ならば大丈夫です)
マクロでフィルタオプションを登録すると登録時のデータの範囲が記録されてしまうので、追加したデータにフィルタオプションがかからない状態になってしますのです。
うまく説明できなくてすみません。
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで時刻(8:00~20:00)...
-
エクセルでオートフィルタのボ...
-
エクセルで隔週をもとめる
-
VBA オートフィルタで抽出した...
-
access マクロでのフィルタの...
-
エクセルでの抽出の仕方
-
エクセルで、条件に一致した行...
-
オートフィルターで一つずつ抽...
-
Excelで西暦の日付から「和暦の...
-
accessでのフィルタの使い方
-
Excelのオートフィルタで非表示...
-
VBAでオートフィルターの再検索
-
データの抽出を教えてください
-
オートフィルタ抽出データに連...
-
エクセルの偶数行(奇数行)の抽出
-
Excel共有ブックのオートフィル...
-
Excelで文字を入力と自動的にフ...
-
エクセルフィルターオプション...
-
Excelのフィルターで抽出した状...
-
エクセルのオートフィルタで最...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでオートフィルタのボ...
-
エクセルで時刻(8:00~20:00)...
-
エクセルのオートフィルタで最...
-
Excelのオートフィルタで非表示...
-
エクセル関数で、数字の入った...
-
エクセルの偶数行(奇数行)の抽出
-
Excelで、ブック中すべてのシー...
-
access マクロでのフィルタの...
-
Excelのフィルターで抽出した状...
-
エクセルで、条件に一致した行...
-
Excel共有ブックのオートフィル...
-
オートフィルタで選択したデー...
-
エクセルにて、フィルタをかけ...
-
【EXCEL】条件に一致した最新デ...
-
可視セルを対象としたcountifが...
-
【Excel/関数/条件付き書式】月...
-
【excel】リスト内の条件にあっ...
-
なぜShowAllDataだとうまく行か...
-
Excel2003 オートフィルタで「...
-
データの抽出を教えてください
おすすめ情報