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

Я работаю над проектом, в котором мне нужно отфильтровать данные на основе определенного значения и имени столбца, указанного в другом листе

Мои данные находятся на листе, называемом «Листом включения», и имя таблицы -«Включение»

Я написал следующий код

'''
    Dim r1 As Integer

    r1 = Rows("1").Find("MatchA").Column

    Sheets("Inclusion Sheet").Select
    ActiveSheet.Range("Inclusion").AutoFilter Field:=r1, Criteria1:="TRUE"
'''

В этом r1 напрямую используется имя ячейки «MatchA».Я хочу изменить это так, чтобы значение r1 основывалось на ячейке A1, которая записана на другом листе (скажем, Sheet1), а не на самой таблице данных.

Поэтому, если я изменю значение ячейки A1 на листе1, значение r1 должно измениться соответственно

1 Ответ

0 голосов
/ 13 июня 2019

Это должно сделать это:

Option Explicit
Sub Test()

    Dim r1 As Long 'don't use integer, integers are Longs cut to an integer
    Dim MySearch As String 'here you will get the string you are looking for

    With ThisWorkbook.Sheets("Sheet1")
        MySearch = .Range("A1") 'If I understood your question, the column you are looking for is in Range A1 from Sheet1
    End With
    With ThisWorkbook.Sheets("Inclusion Sheet")
        r1 = .Range("Inclusion").Find(MySearch).Column
        .Range("Inclusion").AutoFilter Field:=r1, Criteria1:="TRUE"
    End With

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