|
いつもお世話になっております。
早速ですが、UserForm上に、ComboboxとListViewを置き、Comboboxを変更すると"LIST"シートにフィルターをかけ、絞込みを行い、その結果をListViewに表示するようにマクロを作成しました。
表示はできるようになったのですが、Comboboxで選択し直すと、2回目の絞込みの結果が、現在の表示の下に追加されてしまいます。
"Add"で表示するようにしているので仕方ないのですが、2回目の検索時に、1回目の絞込みの結果を削除し、2回目の絞込みの結果のみの表示にすることはできますでしょうか?
現在作成しているマクロです。
Private Sub UserForm_Initialize()
Dim Dic As Object 'Dictionary
Dim RR As Range
Dim R As Range
With Sheets("LIST")
Set Dic = CreateObject("Scripting.Dictionary")
Set RR = .Range("C2")
Set RR = Range(RR, RR.End(xlDown))
For Each R In RR
Dic(R.Value) = Empty
Next
Me.ComboBox1.List = Dic.keys
Set Dic = Nothing
End With
With ListView1
.View = lvwReport
.LabelEdit = lvwManual
.HideSelection = False
.AllowColumnReorder = True
.FullRowSelect = True
.Gridlines = True
.ColumnHeaders.Add , "_Machine Type", "Machin Type"
.ColumnHeaders.Add , "_Machone ID1", "Customer ID"
.ColumnHeaders.Add , "_Machine ID2", "ID"
.ColumnHeaders.Add , "_Number", "Selial No."
End With
End Sub
Private Sub ComboBox1_Change()
Dim CT2 As Range, Cel As Range, LB2tb() As String
Dim LtW As Variant, Cnt As Long, mt As Variant
With Worksheets("LIST")
If .AutoFilterMode Then
.AutoFilterMode = False
End If
LtW = ComboBox1.List(ComboBox1.ListIndex)
.Range("B1").AutoFilter Field:=3, Criteria1:=LtW
CE = .Range("C65536").End(xlUp).Row
CA = .Range("C:C").SpecialCells(xlCellTypeVisible).Areas.Item(2).Row
MsgBox CE & ", " & CA
End With
For i = CA To CE
With ListView1
With .ListItems.Add
.Text = Worksheets("MCSV").Range("E" & i).Value
.SubItems(1) = Worksheets("MCSV").Range("F" & i).Value
.SubItems(2) = Worksheets("MCSV").Range("G" & i).Value
.SubItems(3) = Worksheets("MCSV").Range("H" & i).Value
End With
End With
Next
End Sub
よろしくお願い致します。
|
|