Excel VBA - 过滤“全选”

Chr*_*dox 4 excel vba

我有一个 Excel 工作簿,用于跟踪我的仓库订单。我有一个“Open Re-Orders”选项卡和一个“Items Needing Quote Tab”。在“打开重新订购”选项卡上,A 列包含项目编号,K 列包含手动输入电子表格的供应商报价金额。

在“需要报价的项目”选项卡上,我在 A 列中有下面的公式,该公式将“打开的重新订购”选项卡上存在的所有项目编号拉出,这些编号当前在 K 列(报价)中没有值. 然后我有一个宏设置,它按项目编号过滤数据,“全选”,然后取消选择 0 和空白。然后宏按供应商编号(C 列)对数据进行排序。

“Items Needing Re-Orders”A列公式为:=IF('Open Re-Orders'!$K:$K="",'Open Re-Orders'!$A2)

当我查看宏中的代码时,我看到宏不是全选,而是单独选择每个项目编号。我每次都需要选择全部,即使项目编号已添加到“打开重新订购”选项卡。

提前致谢。

子 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
Run Code Online (Sandbox Code Playgroud)

结束子

小智 7

这比你想象的要容易。只是不包括您拥有的“标准”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