本帖最后由 daxindianqi 于 2016-6-10 09:57 编辑
需要做的更改(已实现功能不变):
1:打开UserForm3时,在ListBox1显示所有以A列中字符为“类别”的B列合集(已实现) 2:点击ListBox1中显示的内容,sheet4光标自动对准相应内容的行(已实现); 3:sheet4光标位置位于EXCEL显示窗口的最上方方便查看(未实现); 4:在TextBox1输入字符时(模糊查询),列表框ListBox1自动检索并只显示搜索的结果(未实现); 5:点击ListBox1中搜索的结果,实现“2:”和“3:”的功能(未实现); 6:清除TextBox1输入字符时,ListBox1恢复显示 “1:”条中最初所有的结果(未实现);
代码: Private Sub ListBox1_Click() DZ = Mid(Me.ListBox1.Column(1), 2) Sheets("sheet4").Cells(DZ, 1).Select End Sub
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) Unload UserForm3 End Sub
Private Sub UserForm_Initialize() With Sheets("sheet4") R = .[a65536].End(xlUp).Row arr = .[a1].Resize(R, 2) c = Application.CountIf(.[a:a], "类别") End With ReDim brr(1 To c, 1 To 2) For x = 1 To R If arr(x, 1) = "类别" Then k = k + 1 brr(k, 2) = "B" & x brr(k, 1) = arr(x, 2) If k = c Then Exit For End If Next With Me.ListBox1 .ColumnCount = 1 .ColumnWidths = "1000" .List = brr End With End Sub Private Sub TextBox1_Change() If TextBox1.Text = "" Then Exit Sub Dim i&, s$, t$ t = TextBox1.Text With ListBox1 .ListIndex = -1 For i = 0 To .ListCount - 1 If InStr(.List(i), t) Then .ListIndex = i Exit For End If Next End With End Sub
|