ComboBox 在过滤数据时仅显示一行

问题描述 投票:0回答:1

我使用 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 行 有什么建议吗?

vba filter ms-word combobox
1个回答
0
投票

如果您按照 @FaneDuru 的建议使用 ListBox 和 TextField ,则它可以工作

© www.soinside.com 2019 - 2024. All rights reserved.