我有兩個問題。首先,在下面的代碼中,我試圖搜索單詞以便更快地找到確切的對象,但是每次我啓動程序時,都會從空白開始,直到我放入字符並擦除,然後出現列表框中的所有內容。我認爲拿走Me.allitems.Clear
會解決它,但是當我試圖刪除Me.allitems.Clear
時,它不會影響它。在Excel VBA上搜索多列
我的第二個問題是,由於我有兩列,我需要它來搜索兩個列的各個單詞。我嘗試複製底部代碼
If Left(itemsheet.Cells(i, 1).Value, a) = Left(Me.searchbox.Text, a) Then
Me.allitems.AddItem itemsheet.Cells(i, 1).Value
Me.allitems.List(allitems.ListCount - 1, 1) = itemsheet.Cells(i, 2).Value
End If
並添加2到它,但沒有奏效。
整個代碼:
Private Sub searchbox_Change()
Dim itemsheet As Worksheet
Set itemsheet = Application.ActiveWorkbook.Sheets(6)
Dim i As Long
Me.searchbox.Text = StrConv(Me.searchbox.Text, vbProperCase)
Me.allitems.Clear
For i = 2 To Application.WorksheetFunction.CountA(itemsheet.Range("A:B"))
a = Len(Me.searchbox.Text)
If Left(itemsheet.Cells(i, 1).Value, a) = Left(Me.searchbox.Text, a) Then
Me.allitems.AddItem itemsheet.Cells(i, 1).Value
Me.allitems.List(allitems.ListCount - 1, 1) = itemsheet.Cells(i, 2).Value
End If
Next i
End Sub
有什麼建議?
編輯: 我發現的第一個問題實際上是增加的項目時到列表框在這一行:
.List(i, 0) = itemnum
.List(i, 1) = Description
i = i + 1
這是添加在ListBox代碼的信息:
For Each itemname In itemsheet.Range("A2:A3400")
With Me.allitems
.ColumnCount = 2
.ColumnWidths = "60;60"
.AddItem itemname.Value
.List(i, 0) = itemnum
.List(i, 1) = Description
i = i + 1
End With
Next itemname
所以具體我是問題,但我需要它來添加列
這就是這樣看起來當我第一次打開它
當我把一個字符,然後刪除這似乎
這是它是如何想的樣子,我應該能夠添加它: