首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将VBA数组粘贴到Excel范围中

将VBA数组粘贴到Excel范围中
EN

Stack Overflow用户
提问于 2019-03-22 16:17:23
回答 1查看 1.1K关注 0票数 1

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

我有一个数组(0到4),它在循环中被多次填充,每次都应该粘贴到excel中的新行中。

预期输出:

代码语言:javascript
复制
      A      |      B      |      C     |      D     |      E
1     X1     |      X2     |      X3    |      X4    |      X5

我的代码:

代码语言:javascript
复制
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)

输出:

代码语言:javascript
复制
      A      |      B      |      C     |      D     |      E
1     X1     |      X1     |      X1    |      X1    |      X1

第二次尝试:

代码语言:javascript
复制
 ws_tgt_agv.Cells(lastR + 1, 1).Resize(UBound(infoarr, 1) + 1).Value = WorksheetFunction.Transpose(infoarr)

输出:

代码语言:javascript
复制
      A      |      B      |      C     |      D     |      E
1     X1     |             |            |            |      
2     X2
3     X3
4     X4
5     X5

如果将转置参数留在末尾,则相同的范围将填充sloley X1。

谢谢你的帮忙!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-22 16:44:42

一维数组(包括基于零和基于一)就像具有多列的单行一样对齐。您不需要转置来将te数组的值放入工作表中;您只需要正确的target大小。

代码语言:javascript
复制
with ws_tgt_agv
  .Range(.Cells(lastR + 1, 1), .Cells(lastR + 1, 5)).Value = infoarr
end with

如果您希望将数组的值放入多行的单个列中,则需要转置。

代码语言:javascript
复制
with ws_tgt_agv
  .Range(.Cells(lastR + 1, 1), .Cells(lastR + 6, 1)).Value = Application.Transpose(infoarr)
end with
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55295451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档