标签:scripting items ict his int ksh cbo next count
Dim Rng As Range Dim Arr As Variant Dim LastCell As Range Dim FindText As String Dim ItemCount As Long Dim Dic As Object Private Sub CbOption_Change() FindText = CbOption.Text If Len(FindText) > 0 Then If Dic.Exists(FindText) = False Then Call FilterItems End If End If End Sub Private Sub CbOption_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) Application.EnableEvents = False If KeyCode = 13 Then LastCell.Value = CbOption.Text End If Application.EnableEvents = True End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Application.EnableEvents = False If Target.Column = 5 Then If Target.Rows.Count = 1 Then Set LastCell = Target Me.CbOption.Visible = True Me.CbOption.Left = Target.Left Me.CbOption.Top = Target.Top Me.CbOption.Width = Target.Width * 1.5 Me.CbOption.Height = Target.Height * 1.5 Me.CbOption.Text = "" Call AddItems End If Else Me.CbOption.Clear Me.CbOption.Visible = False End If Application.EnableEvents = True End Sub Private Sub AddItems() Me.CbOption.Clear Set Dic = CreateObject("Scripting.Dictionary") Set Rng = Application.ThisWorkbook.Worksheets("选项").Range("A1:A117") Arr = Rng.Value For i = LBound(Arr) To UBound(Arr) Key = CStr(Arr(i, 1)) Dic(Key) = "" Me.CbOption.AddItem Key Next i End Sub Private Sub FilterItems() ItemCount = Me.CbOption.ListCount - 1 Set Rng = Application.ThisWorkbook.Worksheets("选项").Range("A1:A117") Arr = Rng.Value For i = LBound(Arr) To UBound(Arr) Key = CStr(Arr(i, 1)) If Key Like "*" & FindText & "*" Then Me.CbOption.AddItem Key End If Next i For i = ItemCount To 0 Step -1 Me.CbOption.RemoveItem (i) Next i End Sub
标签:scripting items ict his int ksh cbo next count
原文地址:http://www.cnblogs.com/nextseven/p/7129198.html