|
いつもお世話になっています。
過去ログを参考に、下記のコードを作成しました。
Private Sub CommandButton3_Click()
Dim CT2 As Range, Cel As Range, LB2tb() As String
Worksheets("Result").Range("A1").AutoFilter Field:=1, _
Criteria1:="*" & TextBox1.Value & "*"
CE = Worksheets("Result").Range("A65536").End(xlUp).Row
Set CT2 = Worksheets("Result").Range("A2:B" & CE).SpecialCells _
(xlCellTypeVisible)
ListBox1.ColumnCount = 2
Cnt = 0
For Each Cel In CT2
On Error Resume Next
mt = Application.Match(Cel, ListBox1.List, 0)
If IsError(mt) Or mt = Empty Then
Cnt = Cnt + 1
ReDim Preserve LB2tb(1 To Cnt)
LB2tb(Cnt) = Cel
End If
ListBox1.List = LB2tb
ERR.Clear
On Error GoTo 0
Next
ListBox1.List = CT2.Value
Set CT2 = Nothing
Erase LB2tb
Application.ScreenUpdating = True
End Sub
質問なんですが、このコードだとオートフィルタ後のデータの、上から
連続した行しかListBoxに表示されません。
データ数が多い為、他のセルでもオートフィルタをかけ、絞込み後にListBox
から欲しい行を抽出しようとしたのですが、やはりListBoxに表示されるのは
上から連続した行のみになってしまいます。
例えば、オートフィルタ後に抽出された行が2,3,6,7,9だったとすると、
ListBoxに表示される行は、2,3だけになってしまいます。
オートフィルタ後に表示されている全ての行をListBoxに表示する方法はないでしょうか?
よろしくお願いします。
|
|