VBA使用搜索建议过滤用户表单上的组合框

时间:2016-01-10 19:22:45

标签: excel vba excel-vba filter combobox

我已经创建了一个带有一些组合框的excel用户表单,附带了一个带有问题的文档但是已经解决了基本问题。

我想出了当我开始在列表中输入时,我如何过滤/自动更新我的组合框并减少输入列表。但是,只要我选择一个项目,我就会收到以下错误:“无法获取Range类的CurrentRegion属性”。我已经尝试了许多不同的解决方案来摆脱这个问题。但仍然无法弄清楚这最后的错误。即使我尝试使用“Range”而不是“CurrentRegion”,我也会遇到这些错误。

由于我想将此功能应用于我的userforms上的所有组合框,我已将所有内容都放在了类事件中。

我已经在网上找到了一些东西,但这些基本上是工作表上的组合框。我喜欢主动更新用户表单上的数据。我想我已经在我现在的代码中应用了我在网上找到的所有内容,但仍然需要解决这个最后的问题。

this is my example file

非常感谢!

最诚挚的问候,Marcel

Option Explicit

Public WithEvents myCBox As msForms.ComboBox
Dim data As Range

Private Sub myCBox_Change()
Set data = filter.Cells(1, 1).CurrentRegion
' filter.Activate
With myCBox
   .DropDown

    ' FILTER
    list.Cells(1, 1).CurrentRegion.AutoFilter Field:=1, Criteria1:="*" & .Value & "*"

    ' COPY
    filter.Cells.Clear
    list.Cells(1, 1).CurrentRegion.Copy Destination:=filter.Cells(1, 1)

    Set data = filter.Cells(1, 1).CurrentRegion
    num_rows_2 = data.Rows.Count

    ' UPDATE COMBOBOX
    .RowSource = "filter!A2:A" & num_rows_2

End With
End Sub

0 个答案:

没有答案