Я знаю, что этот вопрос задавался несколько раз, но я немного застрял, принимая предложенные решения моей проблемы.
У меня есть массив (от 0 до 4), который заполняется несколько раз в цикле и должен вставляться каждый раз в новую строку в Excel.
Ожидаемый результат:
A | B | C | D | E
1 X1 | X2 | X3 | X4 | X5
Мой код:
r i = 0 To iVal
Dim infoarr(0 To 4) As Variant
infoarr(0) = ws_src_agv.Cells(ref + i + 3, 2).Value
infoarr(1) = ws_src_agv.Cells(ref + i + 4, 2).Value
infoarr(2) = ws_src_agv.Cells(ref + i + 3, 1).Value
infoarr(3) = ws_src_agv.Cells(ref + i + 3, 3).Value
infoarr(4) = ws_src_agv.Cells(ref + i + 3, 7).Value
lastR = ws_tgt_agv.Rows(Rows.Count).End(xlUp).Row
'First attempt:
ws_tgt_agv.Range(ws_tgt_agv.Cells(lastR + 1, 1), ws_tgt_agv.Cells(lastR + 1, 5)).Value = WorksheetFunction.Transpose(infoarr)
Выход:
A | B | C | D | E
1 X1 | X1 | X1 | X1 | X1
2-я попытка:
ws_tgt_agv.Cells(lastR + 1, 1).Resize(UBound(infoarr, 1) + 1).Value = WorksheetFunction.Transpose(infoarr)
Ouput:
A | B | C | D | E
1 X1 | | | |
2 X2
3 X3
4 X4
5 X5
если оставить аргумент транспонирования в конце, тот же диапазон заполняется слотом X1.
Спасибо за вашу помощь!