Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


7728 / 13644 ツリー ←次へ | 前へ→

【37194】オートフィルタの複数条件? 福神漬 06/4/25(火) 16:04 質問[未読]
【37196】Re:オートフィルタの複数条件? Statis 06/4/25(火) 16:17 発言[未読]
【37199】Re:オートフィルタの複数条件? 福神漬 06/4/25(火) 16:55 質問[未読]
【37198】Re:オートフィルタの複数条件? Kein 06/4/25(火) 16:33 回答[未読]
【37200】Re:オートフィルタの複数条件? 福神漬 06/4/25(火) 16:57 質問[未読]
【37201】Re:オートフィルタの複数条件? Kein 06/4/25(火) 17:18 発言[未読]
【37224】Re:オートフィルタの複数条件? 福神漬 06/4/26(水) 11:52 お礼[未読]

【37194】オートフィルタの複数条件?
質問  福神漬  - 06/4/25(火) 16:04 -

引用なし
パスワード
   こんにちは。

以前はお世話になりました<(_ _)>
また、データ抽出に関してなのですが、テキストボックスを作り、
テキストボックス1・2に入れられた日付と保守と言う言葉が含まれる行を
抽出するのに以下のようなコードを書きました。(テキストボックスの部分は
以前、こちらで教えて頂いたものを参考にしています。)
ですが、テキストボックスに入力した日付以外のデータも抽出されてきます。
どこに不具合があるか分からないのでご指摘くだされば、幸いです。
よろしくお願い致します。(因みにコードはまだ書きかけです。)

    With Worksheets("管理表マスター")
    If IsDate(Me.TextBox1.Value) And IsDate(Me.TextBox2.Value) Then
    Da1 = Format(Me.TextBox1.Value, .Range("BF6").NumberFormat)
    Da2 = Format(Me.TextBox2.Value, .Range("BG6").NumberFormat)
      If AutoFilterMode = False Then
        With WB.Worksheets("管理表マスター").Range("M4:BG" & r1)
          .AutoFilter field:=47, Criteria1:=">=" & Da1, Operator:=xlAnd, _
            Criteria2:="<=" & Da2
            .AutoFilter field:=1, Criteria1:="=保守*"
        End With
      End If
    End If
    End With
  End If
End Sub

【37196】Re:オートフィルタの複数条件?
発言  Statis  - 06/4/25(火) 16:17 -

引用なし
パスワード
   こんにちは
日付だけなら問題ないですか?

>.AutoFilter field:=47, Criteria1:=">=" & Da1, Operator:=xlAnd, _
>            Criteria2:="<=" & Da2
>AutoFilter field:=1, Criteria1:="=保守*"
下記で如何ですか?
.AutoFilter field:=1, Criteria1:="=保守*"
.AutoFilter field:=47, Criteria1:=">=" & Da1, Operator:=xlAnd, _
            Criteria2:="<=" & Da2

【37198】Re:オートフィルタの複数条件?
回答  Kein  - 06/4/25(火) 16:33 -

引用なし
パスワード
   うまくいくかどうか分からないけど、変数 Da1 と Da2 を Long型で宣言しておき

Da1 = CLng(CDate(Me.TextBox1.Value))
Da2 = CLng(CDate(Me.TextBox2.Value))

と、変更してみたらどうでしょーか ? なお
>With WB.Worksheets("管理表マスター").Range("M4:BG" & r1)


With .Range("M4:BG" & r1)

と、しておいた方が良いでしょう。

【37199】Re:オートフィルタの複数条件?
質問  福神漬  - 06/4/25(火) 16:55 -

引用なし
パスワード
   いつも、ありがとうございます。
試してみたのですが、ダメでした。

With WB.Worksheets("管理表マスター").Range("M4:BG" & r1)

With .Range("M:BG")
してみたら、抽出できたのですが、何故でしょう?
なんて聞いてみてもいいでしょうか?
非常識な質問でしたらすみません。

【37200】Re:オートフィルタの複数条件?
質問  福神漬  - 06/4/25(火) 16:57 -

引用なし
パスワード
   >With WB.Worksheets("管理表マスター").Range("M4:BG" & r1)
>↓
>
>With .Range("M4:BG" & r1)
とすることで、何が変わってくるのでしょうか?
ご教授頂けると幸いです。

【37201】Re:オートフィルタの複数条件?
発言  Kein  - 06/4/25(火) 17:18 -

引用なし
パスワード
   何も変わることはありませんが、最初に
>With Worksheets("管理表マスター")
として、既にシートへの参照がされているので、End With がくるまでは全て
ドット + Range という形で書けますよね ? つまり、わざわざ
With Worksheets("管理表マスター") 〜 End With の途中で、管理表マスターシート
への参照を重複させることはない。ということです。
それよりも、日付の抽出はうまくいきましたか ?

【37224】Re:オートフィルタの複数条件?
お礼  福神漬  - 06/4/26(水) 11:52 -

引用なし
パスワード
   コードの書き損じがありました。
確認してみたら、きちんと抽出できました。
ありがとうございました。
また、何かあったらご教授のほどよろしくお願い致します。

7728 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free