Проблема с фильтрацией Excel VBA - PullRequest
1 голос
/ 05 января 2011

Потрясающие пользователи 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

Я не совсем уверен, почему это работает, а предыдущий нет, поэтому, если кто-то сможет мне это объяснить, это было бы замечательно.Еще раз спасибо!

1 Ответ

1 голос
/ 05 января 2011

Вам необходимо указать диапазон, который вы хотите отфильтровать.Например:

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

Метод автофильтрации в справочнике по языку VBA в Excel 2003

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...