我已经创建了一个带有一些组合框的excel用户表单,附带了一个带有问题的文档但是已经解决了基本问题。
我想出了当我开始在列表中输入时,我如何过滤/自动更新我的组合框并减少输入列表。但是,只要我选择一个项目,我就会收到以下错误:“无法获取Range类的CurrentRegion属性”。我已经尝试了许多不同的解决方案来摆脱这个问题。但仍然无法弄清楚这最后的错误。即使我尝试使用“Range”而不是“CurrentRegion”,我也会遇到这些错误。
由于我想将此功能应用于我的userforms上的所有组合框,我已将所有内容都放在了类事件中。
我已经在网上找到了一些东西,但这些基本上是工作表上的组合框。我喜欢主动更新用户表单上的数据。我想我已经在我现在的代码中应用了我在网上找到的所有内容,但仍然需要解决这个最后的问题。
非常感谢!
最诚挚的问候,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