Я немного стучал головой об этом.VBA много Vlookups на отфильтрованных ячейках
У меня есть большой макрос, который я сделал, выполняя ряд операций над файлом, но застрял в серии фильтров и vlookup.
Вот часть того, что я получил. Я добавил комментарии, чтобы сделать их более ясными.
'FILTER ALL 3P VALUES IN ONE COLUMN AND ADD A VALUE IN ALL RESPECTIVE CELLS IN OTHER COLUMN
Application.ScreenUpdating = False
With ActiveSheet.UsedRange
.AutoFilter Field:=22, Criteria1:="*3P*"
.Offset(1).Range("AU1:AU" & Cells(Rows.Count, "A").End(xlUp).Row).SpecialCells(xlCellTypeVisible).Select
'HERE I SELECT ALL VISIBLE FILTERED CELLS BY COUNTING IN ROW A BECAUSE THESE CELLS ARENT BLANK
.Selection.Value = "3P PROGRAM"
.AutoFilter
End With
'NOW I WANT TO FILTER ROW FOR BLANKS AND THEN FILL THIS RANGE WITH A FORMULA
'HERE IS THE PROBLEM
With ActiveSheet.UsedRange
.AutoFilter Field:=47, Criteria1:="="
.Offset(1).Range("AU1:AU" & Cells(Rows.Count, "A").End(xlUp).Row).SpecialCells(xlCellTypeVisible).Select
.Selection.FormulaR1C1 = "=VLOOKUP(RC[-38],'[WeeklyData.xlsx]Sheet1'!C8:C16,9,FALSE)"
.AutoFilter
End With
Проблема находится на этапе vlookup. Я хочу, чтобы диапазон видимых фильтрованных пустых ячеек получил значение, полученное vlookup. Каждая ячейка должна брать ячейку 38 столбцов влево в качестве ссылки vlookup.
Я не могу найти способ сделать работу с формулой. Я хотел бы: -включить vlookup в этот отфильтрованный диапазон, -remove filter (Autofilter) -Выберите вычисленную колонку со смещением 1 для заголовков и паст в качестве специальных значений - продолжайте этот процесс 5, 6 раз для пустых или недопустимых записей в других столбцах.
Есть ли способ сделать это? Любая помощь с благодарностью
Вопрос: Почему ваш Vlookup Table имеет ширину всего 1 колонку? Это должно было вызвать ошибку и заставить формулу работать. –
@ Jess-eye-ca - Это ссылка диапазона ячеек 'xlR1C1'. На самом деле это относится к 'Sheet1 '! H: P', который имеет ширину 9 колонок. – Jeeped