VBA autofilter返回不完整的列表

我正在尝试基于另一个工作表中的单元格值过滤工作表。 相应的值是我的第二张表h列中的名称。

目前它对数据进行过滤,但只返回1行与filter_val有关的数据,尽pipe有9行数据。

  Sub filter_DMA_2() '' will be set to the combobox when that's figured out Dim filter_val As String Dim filter_range As Range Dim Lrow As Long Set Billed_xls = Workbooks("Copy of SWR1304 (Future Development Risk Assessment) Strathaven.xls").Sheets("Non Household Metered Users") With Billed_xls Lrow = .Range("a" & Rows.count).End(xlUp).Row End With 'Set filter_range = Billed_xls.Sheets("Non Household Metered Users").Range("h:v") Set filter_range = Workbooks("Copy of SWR1304 (Future Development Risk Assessment) Strathaven.xls").Sheets("Non Household Metered Users").Range("a2:v2" & Lrow) 'End With filter_val = Workbooks("DMA_metered_tool_v1.xlsm").Worksheets("DMA list").Range("a1").Value With filter_range .AutoFilter .AutoFilter Field:=5, Criteria1:=filter_val '.Value End With End Sub 

任何想法如何解决这个问题,所以它返回所有9行数据?

干杯

这可能是你的Lrow计算是由现有的filter抛出 – 首先清楚:

 Sub filter_DMA_2() '' will be set to the combobox when that's figured out Dim filter_val As String Dim filter_range As Range Dim Lrow As Long Set Billed_xls = Workbooks("Copy of SWR1304 (Future Development Risk Assessment) Strathaven.xls").Sheets("Non Household Metered Users") With Billed_xls ' clear any existing filter to get accurate row count .AutoFilterMode = False Lrow = .Range("a" & .Rows.Count).End(xlUp).Row Set filter_range = .Range("a2:v2" & Lrow) End With filter_val = Workbooks("DMA_metered_tool_v1.xlsm").Worksheets("DMA list").Range("a1").Value filter_range.AutoFilter Field:=8, Criteria1:=filter_val End Sub 

filter_range.AutoFilter Field:=8, Criteria1:=filter_val之前引用了错误的列。 这已被纠正,现在的代码运行完美。