Ситуация такая: есть таблица, в которой имеются колонки с артикулами от разных поставщиков и колонка с артикулом нашим внутренним. ВПР не обрабатывает (как я помню) разом много колонок, а мне нужно, чтоб артикулы поставщика соответствовали моим. Я уже голову себе сломал. Единственное, что придумал - это через PowerQuery выдергивать попарно нужные столбцы, выгружая их на отдельный лист каждый и потом макросом сводить их в один на новом... но вдруг у кого-то есть вариант проще. Заранее благодарен за любой совет. Пример в прикреплёнке.
Sub sds()
Dim i As Long, lr As Long, lcol As Long, c As Long
k = 2
lr = Cells(Rows.Count, 1).End(xlUp).Row
For c = 1 To 3
For i = 2 To lr
Cells(k, 9) = Cells(i, c)
Cells(k, 10) = Cells(i, 4)
k = k + 1
Next i
Next c
End Sub
в первом посте именно то, что мне нужно, только данные в таблице другие. Вот другая вырезка, только тут исходная таблица и требуемый результат на разных листах:
Sub arewr()
Dim arrIN(), arrOUT(), i As Long, c As Long, lcol As Long, lr As Long
lr = Worksheets("Исходные данные").Cells(Rows.Count, 1).End(xlUp).Row
lcol = Worksheets("Исходные данные").Cells(1, Columns.Count).End(xlToLeft).Column
arrIN = Range(Cells(2, 1), Cells(lr, lcol))
ReDim arrOUT(UBound(arrIN) * lcol - 1, 1)
k = 0
For c = 1 To lcol - 1
For i = LBound(arrIN) To UBound(arrIN)
arrOUT(k, 0) = arrIN(i, c)
arrOUT(k, 1) = arrIN(i, lcol)
k = k + 1
Next i
Next c
Worksheets("Требуемые данные").Range("D2").Resize(UBound(arrOUT), 2) = arrOUT
End Sub