[[20190307161623]] 『VBA オートフィルタについて』(あい) ページの最後に飛ぶ

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

 

『VBA オートフィルタについて』(あい)

たくさん参考文献はあるのに、なぜかエラーになってしまうので質問させていただきます。

【選択シート】
1 A   /B /C /D
2 あああ /AAA /ABC /abc
3 いいい / / /
【データ用】
1 A /B /C /D
2 あああ/AAA /ABB /aaa
3 あああ/BBB /ABC /abc

集計シートのA、B列は固定です。C2とD2をプルダウンで選ぶようになっています。
データ用のシートから選択シートで選んだものを【集計】シートのA1に抽出したいです。

=======================
Sub お試し()

    Dim Sh1 As Worksheet   
    Set Sh1 = Worksheets("選択シート")

Worksheets("集計").Range("A1").CurrentRegion.ClearContents

    With Worksheets("データ用").Range("A1")
            .AutoFilter Field:=1, _
                        Criteria1:="あああ", Operator:=xlAnd, Criteria2:="いいい", _
                        Operator:=xlFilterValues
            .AutoFilter Field:=2, _
                        Criteria1:="AAA", _
                        Operator:=xlAnd
            .AutoFilter Field:=3, _
                        Criteria1:=Sh1.Range("C2"), _
                        Operator:=xlAnd
            .AutoFilter Field:=4, _
                        Criteria1:=Sh1.Range("D2")

        .CurrentRegion.Copy Worksheets("データ用").Range("A1")
        .AutoFilter
    End With

End Sub
=====================

・Worksheets("集計").Range("A1").CurrentRegion.ClearContents

・With Worksheets("データ用").Range("A1")

            .AutoFilter Field:=1, _
                        Criteria1:="あああ", Operator:=xlAnd, Criteria2:="いいい", _

この2か所でオートフィルタメソッドのエラーが出ます。
自分が過去に作成したマクロを応用しただけなのですが、動かないので困っています。よろしくお願いします。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


 xlAnd は xlOr の間違い?

 一つのフィールドで Andは無いと思いますが?
(seiya) 2019/03/07(木) 16:43

私の環境ではエラーは出ませんが、A列で
”あああ”且つ”いいい”
では、何も抽出されませんね。
(通りすがりのおっさん) 2019/03/07(木) 16:45

 (通りすがりのおっさん)
 HNネーム変えての登場か...お粗末...
(seiya) 2019/03/07(木) 16:49

seiyaさま

直す前のを貼ってしまいました。
間違いです
(あい) 2019/03/07(木) 16:55


 Worksheets("集計").Range("A1").CurrentRegion.ClearContents
 ここも
 オートフィルタメソッドのエラー
 ですか?
(seiya) 2019/03/07(木) 17:02

xlOrに直したところ、エラーにはなりませんが、何も抽出されなくなりました・・・
(あい) 2019/03/07(木) 17:46

 ということは、抽出条件の値と実際のシート上の値が合致しないことしか考えられませんが?
 余計なスペース等がありませんか?
(seiya) 2019/03/07(木) 17:52

seiyaさん。
私なにか気に障る事しましたか?

ここのサイトは新規開拓なので
サイトならではマナーとか把握していませんでした。

あいさん。
質問外の話題に入ってしまってすみません。
本題の方ですが、seiyaの指摘(値が合致しない)を確認する方法として
Sub お試し() をステップ実行して、
AutoFilter Field:=1が終わった所(AutoFilter Field:=2の所)で
ワークシートに戻り、データ用シートのA列にどんなフィルタがかかっているかみれば
わかると思います。
(通りすがりのおっさん) 2019/03/07(木) 18:15


 もし予め他の列でフィルタされた状態の時もある場合は、一行追加して
 一旦フィルタを解除してからにしましょう。

     With Worksheets("データ用").Range("A1")
         .worksheet.autofiltermode=false  '<--- これ
(seiya) 2019/03/07(木) 18:20

 随分失礼な奴だな。

 >seiyaの指摘

 お前に呼び捨てにされる覚えは無いし、下手な解説は要らんよ。
(seiya) 2019/03/07(木) 18:28

あ、敬称欠けてました。ごめんなさい。

下手な解説でしたか。

あいさん、惑わせてすみませんでした。
(通りすがりのおっさん) 2019/03/07(木) 18:32


seiyaさま
改行が入っていました・・・・
解除用に追加してきちんとできました!ありがとうございます
(あい) 2019/03/08(金) 14:03

コメント返信:

[ 一覧(最新更新順) ]


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