excel - VBA,为什么粘贴我的数组只粘贴一个单元格
问题描述
我将所有值放入一个数组中,我想将其粘贴到另一个工作簿中。这怎么行不通?它只是粘贴目标工作簿的单元格 A2。我必须选择整个范围来粘贴它吗?
根据这里的答案,答案只是粘贴到一个单元格。 将范围保存到变量
Dim src As Variant
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'Open CM comm file
Set MainDataCM = Workbooks.Open(Sheets("Input").Range("B3") & Sheets("Input").Range("B6"))
'Copy main data tab to EPM file workbook
With Sheets("Main Data")
lastrow = Sheets("Main Data").Range("A" & .Rows.Count).End(xlUp).Row
src = Sheets("Main Data").Range("A2:P" & lastrow).Value
End With
MainDataCM.Close SaveChanges:=False
'Paste into active workbook
Set MainDataCIB = Workbooks.Open(ThisWorkbook.Sheets("Input").Range("B3") & Sheets("Input").Range("B9"))
With Sheets("Main Data")
lastrow = Sheets("Main Data").Range("A" & .Rows.Count).End(xlUp).Row
Sheets("Main Data").Range("A2:P" & lastrow).ClearContents
MainDataCIB.Sheets("Main Data").Range("A2").Value = src
End With
解决方案
为了将数组输出到某个范围,您需要为其提供正确的输出尺寸。我发现做到这一点的最好方法是使用.Resize
指定范围的属性。请参阅下面的代码。
MainDataCIB.Sheets("Main Data").Range("A2").Resize(UBound(src,1), UBound(src,2)).Value = src
这种方法将确保您为输出提供准确的尺寸。
推荐阅读
- powerbi - 带有过滤器的最后日期未在 Powerbi 中显示所有日期
- flutter - Flutter TextButton onPrimary 替代品
- swift - scrollToRow(...animated:false) 导致故障
- flutter - 如何在颤动中获取具有相同ID的所有文档快照
- python - 使机器人重新发送具有所有属性的嵌入
- javascript - 关于范围界定和提升的新手问题?
- buffer-overflow - 链接器标志 `execstack` 未应用于 `.rodata`、`.data` 或 `.bss` 部分.... 出了什么问题?
- javascript - 是否可以将随机 html 站点与节点 javascript 链接?
- excel - Excel 将功能区选项卡的颜色从绿色更改为灰色
- c - 如何在宏和全局变量之间使用逻辑或运算