VBA:基于下拉select过滤表格数据

我想根据下拉列表select过滤一个表C列。 我有更多的线路,我可以从下拉列表中select国家代码。

我想根据国家代码select过滤我的表格。

例如:

第一行:select“54”国家代码

select第二行“24”国家代码

等等….

另一个选项卡上的表格将被所选国家代码“54”,“24”过滤。

你能帮我吗我该如何pipe理它?

谢谢 :)

 Sub FilterRangeCriteria() Dim vCrit As Variant Dim wsFiltered As Worksheet Dim wsSelection As Worksheet Dim rngCrit As Range Dim rngOrders As Range Dim Lastrow As Integer 'you need more variables to save the range in an array Dim valArr As Variant Dim cl As Range Dim i As Integer Set wsFiltered = Worksheets("S") ' I want to filter this tab with "Centre Information" selection Set wsSelection = Worksheets("Centre Information") Set rngOrders = wsFiltered.Range("b:b") 'I want to filter this column Lastrow = Worksheets("Centre Information").Cells(Rows.Count, 2).End(xlUp).Row myrange = ("b3:b" & Lastrow) ' the value from B3 until last row: this will be the filter data Set rngCrit = wsSelection.Range(myrange) vCrit = rngCrit.Value 'I get error here: Autofilter method of range class failed 'Correction: Fill array ReDim valArr(Lastrow - 3) 'define array size (first two rows are empty + considering the first array position starts with 0) i = 0 For Each cl In rngCrit 'loop through range valArr(i) = "=" & cl 'filter for each value + operator i = i + 1 Next cl 'Correction: use array als range of numbers which shall be matched rngOrders.AutoFilter _ Field:=1, _ Criteria1:=valArr, _ Operator:=xlFilterValues End Sub 

评论:如果你想过滤一个范围,使用自动filter,你已经提供了一个数组,其中包含string格式的所有值。 过滤数字需要操作员:例如“=”,“<=”等。