如何解决通过对象将数组分配给VBA中的一系列单元格
我正在为工作生成一个自动化脚本,该脚本在一个目录中搜索存储在多个CSV文件中的数据,然后将这些数据合并到一个工作簿中。我能够毫无问题地提取数据( ie 将一个值的范围分配给数组),但是我似乎无法弄清楚如何进行反向操作。
执行脚本的那部分时总是得到的错误是:
我将原因归结为.Range
和.Cells
的组合(如果我更改代码以将单个数组值分配给单个工作表单元格,则两者都可以正常工作值)。仅当我尝试将 array 分配给一系列单元格时,才会出现该错误。 所以,我的问题是:我在下面编写的简化脚本所追求的面向对象方法支持哪种方法?
Dim testarray(1 To 2,1 To 2) As Integer
testarray(1,1) = 1
testarray(1,2) = 2
testarray(2,1) = 3
testarray(2,2) = 4
Set Target = Workbooks("_ConsolidatedData.xlsm")
Set wb = Target
Set ws = wb.Worksheets(1)
ws.Range(.Cells(1,1),.Cells(2,2)).Value = testarray(2,2)
解决方法
ws.Range(.Cells(1,1),.Cells(2,2)).Value = testarray(2,2)
此行缺少With块
With ws
.Range(.Cells(1,2)).Value = testarray 'no (2,2)
End with
这些方法中的任何一种都可以完成您想要的操作,如果阵列大小发生更改,则无需进行调整:
ws.Range("A1").Resize(ubound(testarray,ubound(testarray,2)).Value = testarray
ws.Cells(1,1).Resize(ubound(testarray,2)).Value = testarray
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。