Excel VBA – 过滤“全选”

我有一个Excel工作簿,用于跟踪我的仓库订单。 我有一个“公开重新订购”标签和一个“需要报价标签的项目”。 在“公开重新订购”选项卡上,列A包含项目编号,列K包含手动input到电子表格中的供应商的报价金额。

在“需要报价的项目”选项卡上,我在下面的A列中列出了公式中的所有项目编号,这些项目编号在“打开重新下订单”选项卡上的列K(报价)中当前没有值。 然后我有一个macros设置,按项目编号过滤数据,然后“select全部”,然后取消select0和BLANKS。 macros然后按照其供应商编号对数据进行sorting(C列)。

“需要重新订购的项目”A列中的公式为:= IF('开放重新订购'!$ K:$ K =“”,'重新开仓订单'!A2)

当我查看macros中的代码时,我发现不是select全部,而是单独select每个项目编号。 即使商品编号已添加到“打开重新订购”选项卡,我也需要此选项来每次select全部。

提前致谢。

Sub Refresh_Quote()

Range("A1:E1").Select Selection.AutoFilter ActiveSheet.Range("$A$1:$E$150").AutoFilter Field:=1, Criteria1:=Array( _ "90000100", "90000104", "90000106", "90000109", "90000304", "90002040", "90003060", _ "90003070", "90003075", "90003919", "90003923", "90004134", "90004211", "90004257", _ "90004295", "90004330", "90004385", "90004415", "90004466", "90004577", "90004600", _ "90004858", "90004859", "90004868", "90004871", "90004872", "90004901", "90004972", _ "90004973", "90004974", "90004975", "90004976", "90005053", "90006117", "90006168", _ "90006320", "90006322", "90006349", "90006385", "90006466", "90007751", "90009942", _ "90092367"), Operator:=xlFilterValues ActiveWorkbook.Worksheets("Items Needing Quote").AutoFilter.Sort.SortFields. _ Clear ActiveWorkbook.Worksheets("Items Needing Quote").AutoFilter.Sort.SortFields. _ Add Key:=Range("C1:C150"), SortOn:=xlSortOnValues, Order:=xlAscending, _ DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Items Needing Quote").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Range("G43").Select 

结束小组

这比你想象的容易。 只是不包括“标准”您有ActiveSheet.Range("$A$1:$E$150").AutoFilter Field:=1, Criteria1:=Array( _

把它缩短到ActiveSheet.Range("$A$1:$E$150").AutoFilter Field:=1

更短的是ActiveSheet.Range("A1").AutoFilter Field:=1