VBAの複数条件での抽出
◇-?VBAの複数条件での抽出-チュニ-PC初心者-PC不慣れ-12/25-14:56(3024)-No.512942 ┗?!Re:VBAの複数条件での抽出...-ZONE-12/25-21:11(3018)-No.512943 ┗?!?Re:VBAの複数条件での抽出...-チュニ-12/25-21:45(3017)-No.512944 ┗?!?!Re:VBAの複数条件での抽出...-ZONE-12/25-23:32(3016)-No.512950
▲このページのトップに戻る
▲このページのトップに戻る
▲このページのトップに戻る
▲このページのトップに戻る
512942 | VBAの複数条件での抽出 | チュニ-PC初心者-PC不慣れ | 2013/12/25-14:56 |
メーカー名:富士通 OS名:Windows7 パソコン名:esprimo D551/G -- F列には営業所のデータが入力されており、G列には二箇所の営業所が関わったときにもう一箇所の営業所を入力するようにしています。 またD列には日付が入力されていて、A列には=month(A1)という数式が入っていて、月だけが表示されるようになっています。 そしてD6は月を検索するセルで11と入れれば11月のデータを抽出するようになっています。 さらにD7は営業所を検索するセルでリストから営業所を選ぶとその営業所のデータを抽出するようになっています。 それが下記のコードなのですが、 D6とD7を両方入力したときの場合を入れたいのです。 (例、12月の東京店を抽出) 何を加えたらよいのかを教えてください。 よろしくお願いいたします。 Private Sub Worksheet_Change(ByVal Target As Range) Dim myRng As Range Dim myRang As Range Dim myRow As Long Dim myCol As Integer Set myRng = Range("F12:G30000") myRow = Target.Row myCol = Target.Column Application.EnableEvents = False Application.ScreenUpdating = False Set myRang = Range("A12:A30000") myRow = Target.Row myCol = Target.Column Application.EnableEvents = False Application.ScreenUpdating = False If Range("D7").Value = "" And Range("D8").Value = "" And Range("D6").Value = "" Then If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False End If Else '月検索 If myRow = 6 And myCol = 4 Then With myRang .AutoFilter .AutoFilter Field:=1, Criteria1:="=" & Range("D6").Value End With Range("D8").Value = "" End If '営業所検索 If myRow = 7 And myCol = 4 Then With myRng .AutoFilter .AutoFilter Field:=1, Criteria1:="=" & Range("D7").Value End With Range("D8").Value = "" End If '営業所(特便のみ)検索 If myRow = 8 And myCol = 4 Then With myRng .AutoFilter .AutoFilter Field:=1, Criteria1:="=" & Range("D8").Value .AutoFilter Field:=2, Criteria1:="<>" End With Range("D7").Value = "" End If End If Application.EnableEvents = True Application.ScreenUpdating = True End Sub |
▲このページのトップに戻る
512943 | Re:VBAの複数条件での抽出 | ZONE | 2013/12/25-21:11 |
記事番号512942へのコメント チュニ-PC初心者-PC不慣れさんは No.512942「VBAの複数条件での抽出」で書きました。 ・データ抽出について http://pasokoma.jp/51/lg512850 同一人物ですよね。前にも注意したけどルール違反はいけないなぁ。 それと、解決できたのかな? > Set myRng = Range("F12:G30000") > Set myRang = Range("A12:A30000") このままでも構わないけど統一して検索対象セル範囲を明示的にすることにより 全体が良く見えるようになるので、簡単に問題解決できますよ。 |
▲このページのトップに戻る
512944 | Re:VBAの複数条件での抽出 | チュニ | 2013/12/25-21:45 |
記事番号512943へのコメント ご回答ありがとうございます。 ちなみに私は、初めて質問しました。 同じ職場のものが前に質問したようです。 set myRng=Range("A12:G30000") と変えたのですが、その後の具体的なコードが初心者の為、 まったくわかりません。 申し訳ありませんが、教えてください。 |
▲このページのトップに戻る
512950 | Re:VBAの複数条件での抽出 | ZONE | 2013/12/25-23:32 |
記事番号512944へのコメント チュニさんは No.512944「Re:VBAの複数条件での抽出」で書きました。 >set myRng=Range("A12:G30000") A列〜G列がAutoFilterのField 1〜7に対応するのは理解されていますよね? #myRngを使用している記述済みのコードはField番号が変わるので要変更のこと。 で、 >D6とD7を両方入力したときの場合を入れたいのです。 >(例、12月の東京店を抽出) これを実現するには、A列がD6と一致しF列がD7と一致する行を抽出するように コード記述するだけです。 With myRng .AutoFilter .AutoFilter Field:=1, Criteria1:=Range("D6").Value .AutoFilter Field:=6, Criteria1:=Range("D7").Value End With |
何か一言(本ページで参考になったならないを含めて残してあります)
◎:解決 ○:参考になった ×:参考にならなかった !:アドバイスあり
参考 | 回数 | 投稿日時 | 何か一言 |
---|