|
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
w = ActiveCell.Row
m = 2
With ListBox1
For i = 1 To .ListCount - 1
If .Selected(i) = True Then
For j = 0 To 4
If j <> 3 Then
m = m + 1
Cells(w, m) = .List(i, j)
End If
Next j
Exit For
End If
Next i
.Visible = False
.Clear
End With
TextBox1.Visible = False
TextBox1 = ""
End Sub
Private Sub TextBox1_Change()
Dim ar As Variant
Dim br()
With Sheets("数据")
r = .Cells(Rows.Count, 3).End(xlUp).Row
If r < 5 Then MsgBox "数据工作表为空,请先导入数据!": End
ar = .Range("c4:g" & r)
End With
zd = TextBox1.Text
ReDim br(1 To UBound(ar), 1 To UBound(ar, 2))
n = 1
For j = 1 To UBound(ar, 2)
br(n, j) = ar(1, j)
Next j
For i = 2 To UBound(ar)
If InStr(ar(i, 1), zd) > 0 Then
n = n + 1
For j = 1 To UBound(ar, 2)
br(n, j) = ar(i, j)
Next j
End If
Next i
With ListBox1
.Clear
.List = br
End With
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal T As Range, Cancel As Boolean)
If T.Row > 5 And T.Column = 3 Then
If T.Count > 1 Then End
With Sheets("数据")
r = .Cells(Rows.Count, 3).End(xlUp).Row
If r < 5 Then MsgBox "数据工作表为空,请先导入数据!": End
ar = .Range("c4:g" & r)
End With
With TextBox1
.Visible = True
.Top = T.Top
.Left = T.Left
.Activate
End With
With ListBox1
.Visible = True
.Top = T.Top
.Left = T.Left + 70
.List = ar
End With
Cancel = True
End If
End Sub
Private Sub Worksheet_SelectionChange(ByVal T As Range)
If T.Row <= 5 Or T.Column <> 3 Then
TextBox1.Visible = False
TextBox1 = ""
ListBox1.Visible = False
ListBox1.Clear
End If
End Sub
|
|