Как узнать, какие фильтры были выбраны при вводе данных - PullRequest
0 голосов
/ 07 июля 2019

Я работаю с базой данных и вводю данные в новые столбцы на основе других данных в электронной таблице.

При вводе данных в один из моих столбцов я считаю, что я случайно выбрал фильтр (или комбинацию фильтров), что означает, что значительная выборка квалифицирующих данных для ввода была пропущена. Однако, исправив это, неизвестный фильтр на самом деле дал значительно лучшие результаты, поэтому я подумал, можно ли было определить, какие фильтры были включены, когда я первоначально вводил свои данные?

У меня есть версия электронной таблицы с начальной записью (но все фильтры очищены) и версия электронной таблицы, которая была заполнена правильно.

1 Ответ

0 голосов
/ 07 июля 2019

Это создаст массив с именем currentFilterSettings, где каждый элемент в первом измерении представляет столбец, а настройки фильтра сохраняются во втором измерении.

Возможно, вы захотите запустить его с разрывом на последней доступной строке и использовать окно locals для просмотра структуры.

Sub GetCurrentFilterSettings()
    Dim ws As Worksheet
    Dim currentFilterSettings()
    Dim i As Long
    Set ws = ActiveSheet
    With ws.AutoFilter.Filters
    ReDim currentFilterSettings(1 To .Count, 1 To 3)
        For i = 1 To .Count
            With .Item(i)
                If .On Then
                    currentFilterSettings(i, 1) = .Criteria1
                    If .Operator Then
                    currentFilterSettings(i, 2) = .Operator
                        If .Operator = xlAnd Or .Operator = xlOr Then
                            currentFilterSettings(i, 3) = .Criteria2
                        End If
                    End If
                End If
            End With
        Next i
    End With
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...