gpt4 book ai didi

arrays - 将 VBA 数组粘贴到 Excel 范围内

转载 作者:行者123 更新时间:2023-12-04 21:50:30 25 4
gpt4 key购买 nike

我知道这个问题已被多次问过,但我有点坚持采用建议的解决方案来解决我的问题。

我有一个数组(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 填充。

谢谢你的帮助!

最佳答案

一维数组(从零开始和从一开始)像单行多列一样对齐。您无需转置即可将 te 数组的值放入工作表中;你只需要正确大小的目标。

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 with

关于arrays - 将 VBA 数组粘贴到 Excel 范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55295451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com