1

很棒的 Stackoverflow 用户,

我在一些看起来很简单不会造成这么多麻烦的事情上遇到困难。我正在尝试根据条件过滤给定的工作表。这是代码:

Sub FilterWorksheet(sCriteria As String)
  'First, clear the filter
  ThisWorkbook.Worksheets("MyAwesomeSheet").AutoFilterMode = False

  'Then apply the filter for the Transfer_From_seg column
  ThisWorkbook.Worksheets("MyAwesomeSheet").AutoFilter Field:=2, Criteria1:=sCriteria
End Sub

出于某种原因,我实际应用过滤器的最后一行一直给我以下错误消息:

Runtime Error '448'

Named argument not found

我这样做真的很愚蠢吗?

谢谢!

更新:

所以我找到了解决方案。这是它的样子:

Sub FilterWorksheet(sCriteria As String)
  'First, clear the filter
  ThisWorkbook.Worksheets("MyAwesomeSheet").AutoFilterMode = False

  'Then apply the filter for the Transfer_From_seg column
  ThisWorkbook.Worksheets("MyAwesomeSheet").Range("A:H").AutoFilter Field:=2, Criteria1:=sCriteria
End Sub

我不太确定为什么会这样,如果有人可以向我解释,前一个不会,那就太好了。再次感谢!

4

1 回答 1

1

您需要指定要过滤的范围。例如:

ThisWorkbook.Worksheets("MyAwesomeSheet").Range("B3:C11").AutoFilter field:=2, Criteria1:=sCriteria

Excel 2003 VBA 语言参考中的自动筛选方法

于 2011-01-05T15:43:37.867 回答