|
春节快乐!
为防病毒,宅在家里没事,刚学窗体,也来凑一热闹。
Dim d As Object, arr
Private Sub CommandButton1_Click() '
Dim zw, rs, i, r, brr()
zw = Me.ComboBox1.Text
k = 1
If d.exists(zw) Then
rs = Split(d(zw), ",")
k = 1
For Each s In rs
k = k + 1
ReDim Preserve brr(1 To 3, 1 To k)
brr(1, 1) = "序号": brr(2, 1) = "姓名": brr(3, 1) = "职务"
brr(1, k) = k - 1: brr(2, k) = arr(Val(s), 1): brr(3, k) = arr(Val(s), 2)
Next
End If
Me.ListBox1.Clear
ListBox1.ColumnCount = 3 '默认显示3列(序号、姓名、职务)
ListBox1.ColumnWidths = "40,40,40" '设置其每列的宽度
ListBox1.List = Application.Transpose(brr) '转置后,将数组赋值给列表框(查询结果显示框)
End Sub
Private Sub UserForm_Initialize()
Dim i&, a&
Set d = CreateObject("Scripting.Dictionary") '''字典
arr = Sheet1.[a1].CurrentRegion '''数组
For i = 2 To UBound(arr)
If Not d.exists(arr(i, 2)) Then
d(arr(i, 2)) = i
Else
d(arr(i, 2)) = d(arr(i, 2)) & "," & i
End If
Next
Ik = d.keys
Me.ComboBox1.List = Ik '写入下拉菜单
End Sub
|
评分
-
1
查看全部评分
-
|