Я хочу использовать Application.Match, чтобы найти строку таблицы и сохранить ее в массиве. У меня это работает для поиска в одном столбце:
With Worksheets("Data").ListObjects(tblName)
myArray = Application.Transpose(Application.Transpose(.ListRows( _
Application.Match(searchTerm, .ListColumns(1).DataBodyRange, 0 _
).Range)))
End With
Но некоторые таблицы, на которые я хочу посмотреть с этим подпунктом, могут иметь searchTerm
в столбце 2, поэтому я хочу расширить диапазон, на который ссылаются в Application.Match" to the 1st and 2nd columns. I've heard about using
.Resize (, 2) `но я не могу заставить его работать. Сегодня я узнал о структурированных ссылках и могу ссылаться на столбцы следующим образом:
Worksheets("Data").Range("tblName[[Column1]:[Column2]]").Activate
Но для этого требуется, чтобы я ссылался на столбцы по их заголовкам, которые отличаются в разных таблицах, и я хочу иметь возможность используйте их номер. Кто-нибудь знает решение, которое не включает циклы, если searchTerm
не найден в первом столбце?
Обновление:
Чтобы предоставить больше информации по моему вопросу.
Пользователь выбирает ячейку, которая содержит строку. Строка разбивается на 2 элемента в массиве instruction
.
instruction(0) =
имя таблицы, в которой я хочу посмотреть. instruction(1) =
термин, который я ищу. Этот термин может быть в столбце 1 или 2.
Строка таблицы instruction(0)
, содержащая instruction(1)
, затем загружается в другой массив с именем interactData
У каждой таблицы есть свой саб, в котором элементы interactData
используются для разных действий.