Страницы: 1
RSS
Макрос ВПР (VLOOKUP) с фильтрацией, Макрос для объединение таблиц с фильтрами
 
Здравствуйте! Есть две страницы с наборами данных, их надо поженить макросом через общий столбец "№". Сложность в том, что они обе отфильтрованы: на Листе 1 "№" меньше 29, на Листе 2 "№" начинается с 2. Если стоит фильтрация, макрос подтягивает неверные соответствия.
Подскажите, как докрутить макрос, чтобы он работал только с отображаемыми ячейками?
Задача упрощена, фактически это 2 файла с тысячами строк переменных данных.

Лист1
ТоЭто
29
11
12
13
26
24
25
27
30
Лист2
ТоЭто
13ттри
27ссемь
24ччетыре
29ддевять
S
Код
ub Vlookup1()
               
    Sheets("Лист1").Range("B2:B10").Value = WorksheetFunction.IfError(WorksheetFunction.Vlookup(Sheets("Лист1").Range("A2:A10"), Sheets("Лист2").Range("A2:C5"), 2, False), "")
    Sheets("Лист1").Range("C2:C10").Value = WorksheetFunction.IfError(WorksheetFunction.Vlookup(Sheets("Лист1").Range("A2:A10"), Sheets("Лист2").Range("A2:C5"), 3, False), "")
    
End Sub
 
Добрый день.
Выкинуть ВПР, перебирать эти тысячи в массивах с учётом условий фильтрации.
 
Как минимум, для работы с только отфильтрованными строкам, надо отказаться от ВПР - она этого не умеет. И неважно макросом Вы это делаете или нет. Как вариант(если надо именно так) - создавать доп.лист, на который копировать только видимые ячейки и уже с этого листа тянуть данные через ВПР.
А чтобы понять, решается ли задача другими функциями - нужен файл с данными и описание задачи(что нужно получить).
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Спасибо, попробую с доп. листом. Простое решение :)  
Страницы: 1
Наверх