我知道这个问题已经被问了很多次了,但我有点坚持采用我的问题的建议解决方案。
我有一个数组(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第二次尝试:
ws_tgt_agv.Cells(lastR + 1, 1).Resize(UBound(infoarr, 1) + 1).Value = WorksheetFunction.Transpose(infoarr)输出:
A | B | C | D | E
1 X1 | | | |
2 X2
3 X3
4 X4
5 X5如果将转置参数留在末尾,则相同的范围将填充sloley X1。
谢谢你的帮忙!
发布于 2019-03-22 16:44:42
一维数组(包括基于零和基于一)就像具有多列的单行一样对齐。您不需要转置来将te数组的值放入工作表中;您只需要正确的target大小。
with ws_tgt_agv
.Range(.Cells(lastR + 1, 1), .Cells(lastR + 1, 5)).Value = infoarr
end with如果您希望将数组的值放入多行的单个列中,则需要转置。
with ws_tgt_agv
.Range(.Cells(lastR + 1, 1), .Cells(lastR + 6, 1)).Value = Application.Transpose(infoarr)
end withhttps://stackoverflow.com/questions/55295451
复制相似问题