複数のオプションを持つ2つのリストボックスを持つユーザーフォームを作成しました。ユーザーフォームのリストボックスをリンクし、ボタンを使用してアクセスするためのvba
- リストボックス1には、シート結果の列Lの位置1が設定されます。
- リストボックス2には、シート結果の列Mの位置2が入力されます。
「GO !!」と表示されたボタンがあります。
現在、リストボックス1をクリックすると、ドイツ語はLocation1、場所はフィルタリングされます。 同様に、Listbox2を選択した場合(たとえば、場所2、それは場所をフィルターに掛ける)
私は、2つのリストボックスがボタンで相互にリンクされ、アクセスされるようなコードを持っていたいと思います。
たとえば、リストボックス1から「USA」をクリックするとリストボックス2から "ドイツ"、私は "GO"をクリックします。
また、Listbox2を選択していない場合は、listbox1とviceversaの結果のみが表示されます。
ここはコードです、私はlistbox1に使用しています。 2番目のリストボックスのリストボックス名と列番号を同じコードで変更します。
Private Sub DoFilter1()
Dim ws As Worksheet
Dim strCriteria() As String, i As Integer, arrIdx As Integer
ReDim Preserve strCriteria(0 To arrIdx)
arrIdx = 0
For i = 0 To Me.ListBox1.ListCount - 1
If Me.ListBox1.Selected(i) Then
ReDim Preserve strCriteria(0 To arrIdx)
strCriteria(arrIdx) = Me.ListBox1.List(i)
arrIdx = arrIdx + 1
End If
Next i
Set ws = Sheets("Result")
If arrIdx = 0 Then
ws.UsedRange.AutoFilter
Else
ws.Range("A:P").AutoFilter Field:=12, Criteria1:=Array(strCriteria), Operator:=xlFilterValues
End If
End Sub
私は、どのように私はそれらを相互にリンクし、ボタンを介してアクセスできるかを示唆するかもしれません。どんなリードも役に立つでしょう。
これは私のユーザーフォームの外観です。リストからチェックボックスを選択し、[OK]をクリックして結果を表示したいと思います。また、私はチェックボックスで複数のオプションを選択できる必要があります。
ボタンでこれを試す必要がありますか? – Jenny
はい、ボタンの中で、Msgboxの代わりに、テキストボックスまたはシート参照に入力することができます。 –
CHEC ListBox1を とするX = 0 .ListCountこのコード ます。Private Sub CommandButton1_Click() - 1 場合.Selected(X)次に TEMP = TEMP&chrです(10)との.List(X) END IF .ListCountに対するX = 0 ListBox2 とで 次にエンド - 1 .Selected(X)次に TEMP = TEMP&chrです(10)との.List(X) END IFで 次にEND IF MsgBox temp& "が選択されている" End Sub –