我使用 Excel 中的数据在 Ms-word 中创建了一个下拉菜单,并且添加了过滤功能。两者都工作正常。但是,当我输入要过滤的内容时,即使有很多数据,我也只会看到一行和一个小滚动条: 假设我有 125ASD3461、4571ANR778 和 AN66723tz。如果我输入“7”,我将看到带有小滚动条的“4571ANR778”,如果我单击那里,我将看到下一个“AN66723tz”。但我想查看例如至少 6 个数据,如果过滤后的数据超过 6 个,用滚动条查看其他数据
这是我的过滤器脚本:
Private Sub ComboBox1_Change()
' Filter the items based on the current ComboBox text
PopulateComboBox ComboBox1.Text
End Sub
Private Sub PopulateComboBox(filterText As String)
Dim item As Variant
Dim currentText As String
currentText = ComboBox1.Text ' Store the current text
' Clear the ComboBox before adding filtered items
ComboBox1.Clear
' Loop through the collection and add items that contain the filter text
For Each item In allItems
' Use InStr to find if the filterText is found anywhere in the item
If InStr(1, UCase(item), UCase(filterText)) > 0 Then
ComboBox1.AddItem item
End If
Next item
' Restore the typed text after filtering
ComboBox1.Text = currentText
' Make sure the ComboBox shows the correct number of items (up to 6)
If ComboBox1.ListCount > 6 Then
ComboBox1.ListRows = 6
Else
ComboBox1.ListRows = ComboBox1.ListCount
End If
End Sub
过滤功能工作正常,但就像我说的,只能看到一行而不是 6 行 有什么建议吗?
如果您按照 @FaneDuru 的建议使用 ListBox 和 TextField ,则它可以工作