1
ユーザーフォームのチェックボックスから複数の項目を選択する方法が必要です。いったん声明が真実になると、論理は継続しないという事実に論理的な誤りがあると私は信じている。自動フィルターとユーザーフォームを使用した複数項目の選択
If flt_type_cb1.Value = True Then
WholeSheetRange.AutoFilter Field:=7, Criteria1:="=DOM"
ElseIf flt_type_cb2.Value = True Then
WholeSheetRange.AutoFilter Field:=7, Criteria1:="=AK"
ElseIf flt_type_cb3.Value = True Then
WholeSheetRange.AutoFilter Field:=7, Criteria1:="=HI", Operator:=xlOr, Criteria2:="HI-LH"
ElseIf flt_type_cb4.Value = True Then
WholeSheetRange.AutoFilter Field:=7, Criteria1:="=INTL-ASIA", Operator:=xlOr, Criteria2:="INTL-ASIA-PJ"
ElseIf flt_type_cb5.Value = True Then
WholeSheetRange.AutoFilter Field:=7, Criteria1:="=PS"
ElseIf flt_type_cb6.Value = True Then
WholeSheetRange.AutoFilter Field:=7, Criteria1:="=GU", Operator:=xlOr, Criteria2:="GUMHNL"
ElseIf flt_type_cb7.Value = True Then
WholeSheetRange.AutoFilter Field:=7, Criteria1:="=LATBUS"
ElseIf flt_type_cb8.Value = True Then
WholeSheetRange.AutoFilter Field:=7, Criteria1:="=INTL", Operator:=xlOr, Criteria2:="INTL-PJ"
End If
Iは、例えばDOMとPSの両方を選択できるようにしたいと思います。ここでは
は、私が現在持っているコードです。
条件が満たされたときに、 'elseif'を使用することにより、コードが残りの部分をスキップします。このような場合は、別々の 'if'文を使用することを検討してください。 – Tehscript
[この回答](https://stackoverflow.com/questions/38404176/using-string-array-as-criteria-in-vba-autofilter)の最後のオプションのようにロードするフィルタ値の文字列を作成できます#38404521)。値の文字列を構築するには、チェックボックス(コントロールがあると仮定)とチェックボックスの番号に基づいてテスト条件をループすることができます。 –
私はループロジックに関する問題を抱えているので、私は別々のif文の方に傾いています。私がif文のパスを辿ると、変種として新しい変数を作成する必要があります。本当のケースごとに文字列を変数に追加してから、xlFilterValuesを実行します。 編集:配列をあらかじめ定義しておき、見つからない場合は各値を何も設定しない方が良いでしょうか。 –