2015-06-26 4 views
0

быстрый вопрос, как я могу исключить элемент из списка через VBA. Работали на листе, который автоматически распечатывает список без определенной даты на нем.Excel VBA autofilter снять флажок/исключить элементы

Rows("2:2").Select 
    Selection.AutoFilter 
    ActiveSheet.Range("$A$3:$H$1000").AutoFilter Field:=3, Criteria1:="Hans" 
    ActiveSheet.Range("$A$3:$H$1000").AutoFilter Field:=7, Criteria1:="open" 
    ActiveSheet.Range("$A$3:$H$1000").AutoFilter Field:=6, Criteria1:="<>1/0/1900", Operator:=xlFilterValues 
     ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _ 
    IgnorePrintAreas:=False 
     Rows("3:3").Select 
    Selection.AutoFilter 

Проблема в том, что критерии не работают с датой 0-1-1900, чтобы отфильтровать ее. Что я делаю не так?

+0

Попробуйте использовать ** Macro Recorder ** и смоделируйте свой код в коде Recorder. –

+0

Вы не можете использовать операторов для установки критериев, единственный способ - указать все параметры, которые вы хотите включить, см. Http://blog.contextures.com/archives/2010/12/15/excel-autofilter-with -criteria-in-a-range/ –

+0

@ MátéJuhász является ли эта информация правильной? Возможно, для строк, но для чисел, когда я использую операторы для установки критериев, они работают без каких-либо проблем. – Dubison

ответ

1

0-1-1900 - дата, которая не существует. Это может быть проблемой.

Просто используйте

Criteria1:=">1/1/1900" 

и это должно слово хорошо.

+0

Исправлена ​​проблема, спасибо! Один вопрос, хотя, если я хотел бы исключить дату 1-1-1900, тогда мой код должен быть {criteria1: = "<> 1/1/1900"} ? – Thijsk

+1

вы также можете использовать 'Criteria1: =" <> 0 "', где 0-1-1900 - это формат даты 0 – Dubison

+1

, да, {criteria1: = "<> 1/1/1900"} будет работать. – Musisold

Смежные вопросы