У меня есть часть макроса, в котором хранятся параметры автофильтра перед очисткой фильтра, поэтому они могут повторно их использовать позже. Код выглядит следующим образом:Excel VBA Сохранение настроек автофильтра с датами
Dim FilterArray()
With FrontPage.AutoFilter.Filters
ReDim FilterArray(1 To .Count, 1 To 3)
For f = 1 To .Count
With .Item(f)
If .On Then
FilterArray(f, 1) = .Criteria1
If .Operator Then
FilterArray(f, 2) = .Operator
If .Operator = xlAnd Or .Operator = xlOr Then
FilterArray(f, 3) = .Criteria2
End If
End If
End If
End With
Next f
End With
Это прекрасно работает в любой ситуации, с которой я столкнулся, кроме полей даты. В случае полей даты, Criteria1 и Criteria2 вызывают ошибки (определенная пользователем или объектная ошибка), в то время как оператор возвращает значение 7. Это произошло в Excel 2007 и все еще происходит в Excel 2013.
I предположим, что причина этого не срабатывает из-за вложенного способа автофильтров обрабатывать поля даты, но есть ли способ сделать эту работу с датами? Я видел другие проблемы, связанные с применением фильтров к датам, но, безусловно, их хранение в первую очередь должно быть проще?
И второстепенный вопрос: что означает значение 7 для оператора? Я могу найти перевод значений 0-2.
'xlFilterValues = 7' –
Какая версия Excel вы используете? – Sam
Я нахожусь в 2013 году, но имел такую же проблему с 2007 годом – BBaxter