Excel 如何自动筛选列?

Excel 如何自动筛选列?,excel,vba,Excel,Vba,我正在尝试筛选标题为“Stock”的列“I”,以便在图纸名称“Order in Units”中仅显示值大于“5”的列 我有一个调试器 Sub AutoFilter_Number_Examples() 'Examples for filtering columns with NUMBERS Dim lo As ListObject Dim iCol As Long 'Set reference to the first Table on the sheet Se

我正在尝试筛选标题为“Stock”的列“I”,以便在图纸名称“Order in Units”中仅显示值大于“5”的列

我有一个调试器

Sub AutoFilter_Number_Examples()
'Examples for filtering columns with NUMBERS
 
    Dim lo As ListObject
    Dim iCol As Long
    'Set reference to the first Table on the sheet
    Set lo = Order in Units.ListObjects(1)
  
    'Set filter field
    iCol = lo.ListColumns("Stock").Index
   
    'Clear Filters
    lo.AutoFilter.ShowAllData

    With lo.Range
        .AutoFilter Field:=iCol, Criteria1:=">5"
    End With
  
End Sub
这就是你想要的吗?(例如D列)


我为showallData添加了一个错误处理程序,因为如果数据未经过滤,它将失败。

您应该在showallData之后添加一个
On error GoTo 0
,因为您在showallData之后不需要错误处理程序是的,这是另一种方法@romulax14,但我认为这相当于:)欢迎您(您也可以使用宏录制器进行录制)@Macronaute不,它不是,在错误恢复下一行时使用
告诉Excel忽略此行下方的所有错误,并在有错误时移到下一行。在您的情况下,您不希望Excel忽略所有错误,而只是由ShowAllData引起的错误。因此,您应该在ShowAllData之后将
设置为Error GoTo 0
,以告知excel停止忽略该行之后的错误。它重置错误处理程序。否则,OP将无法调试,因为每个错误都将被忽略。忽略处理程序以错误恢复下一步时的
开始,以错误转到0时的
结束,代码介于之间。好的,抱歉@romulax14,我以为错误恢复下一步时的
只是在下一行工作!
Sub AutoFilter_Number_Examples()    
    On Error Resume Next
    Columns("D:D").AutoFilter.ShowAllData
    On error goto 0
    
    Columns("D:D").AutoFilter
    ActiveSheet.Range("D:D").AutoFilter Field:=1, Criteria1:=">5"
End Sub