こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

フィルターオプションのマクロ登録について

Excel2016のフィルターオプションのマクロ登録について

Excel2016で名簿データを作成しています。
フィルターオプションを使用して、地区ごとのデータをそれぞれ別シートに作成していますが、
「マクロの登録」の存在を初めて知ったため、登録してみました。
(マクロについては全くの初心者です)

マクロの実行まではうまくいったのですが、元データを更新した後に、マクロを実行しても
A列の番号だけが抽出され、詳細内容が反映されません。
(前回に抽出されたものをすべて消してやり直せば反映されます)

原因として考えられることがあれば教えてください。

マクロの内容は以下の通りです。
(元データは「練習」としています)

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


Sub 地区別()
'
' 地区別 Macro
'

'
Application.CutCopyMode = False
Application.CutCopyMode = False
Sheets("練習").Range("テーブル8[#All]").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4"), Unique:=False

End Sub

投稿日時 - 2019-04-07 11:16:41

QNo.9604469

困ってます

質問者が選んだベストアンサー

その上手くいく処理を実行すれば良いのでは。
処理をやり直す以下の記述をAdvancedFilterの前に実行するとどうなりますか。
If Sheets("練習").FilterMode Then
Sheets("練習").ShowAllData
End If

投稿日時 - 2019-04-07 12:14:09

補足

ありがとうございます。

やはり、最初のA列のNo.だけしか反映されず、詳細データが反映されませんでした。

Sub 地区別()
'
' 地区別 Macro
'
If Sheets("練習").FilterMode Then
Sheets("練習").ShowAllData
End If
'
Sheets("練習").Range("テーブル8[#All]").AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("A1:A2"), CopyToRange:=Range("A4"), Unique:=False

End Sub

上記で実行しましたが、
入力箇所が間違っていますでしょうか。

投稿日時 - 2019-04-07 19:48:10

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

>前回に抽出されたものをすべて消してやり直せば反映されます

これはA4の内容ですか?それなら
Sheets("練習").Range("A4").Clear
を実行すればよいはず。

投稿日時 - 2019-04-07 22:27:38

あなたにオススメの質問