Excel 如何自动筛选列?
我正在尝试筛选标题为“Stock”的列“I”,以便在图纸名称“Order in Units”中仅显示值大于“5”的列 我有一个调试器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
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