arrays - 使用多元素数组的多元素数组填充定义的命名范围
问题描述
我已经定义了 5 个数组。
一个具有未定义的维度来存储其他 4 个:
Dim outputArr() As Variant
其余如下:
Dim Arr1(5, 0), Arr2(12, 0), Arr3(5, 0), Arr4(12, 0) As Variant
我将后者的元素分配如下:
Arr1(0, 0) = [{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}]
Arr1(1, 0) = [{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}]
Arr1(2, 0) = [{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}]
Arr1(3, 0) = [{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}]
Arr1(4, 0) = [{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}]
Arr1(5, 0) = [{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}]
以上适用于每个数组。
当我使用
ReDim outputArray(3, 0)
outputArr = [{Arr1, Arr2, Arr3, Arr4}]
我得到一个'Type Mismatch'
错误。
当我不使用Evaluate
和分配时ReDim
outputArr = Array(Arr1, Arr2, Arr3, Arr4)
我可以在Watch 窗口中看到元素及其值,但是当我尝试使用元素填充定义的命名范围时,outputArr
我得到一个空输出
Range("nRange1name").Value = outputArr(0)
Range("nRange2name").Value = outputArr(1)
Range("nRange3name").Value = outputArr(2)
Range("nRange4name").Value = outputArr(3)
我该如何解决这个问题?
解决方案
您需要构建一个实际的二维数组来执行类似的操作。
Dim arr(1 to 6, 1 to 12)
dim r as long, c as long
for r = lbound(arr, 1) to ubound(arr, 1)
for c = lbound(arr, 2) to ubound(arr, 2)
arr(r, c) = 0
next c
next r
Range("A1").Resize(ubound(arr, 1), ubound(arr, 2)).value = arr
推荐阅读
- single-sign-on - Alfresco 无法使用 CAS SSO 连接到存储库
- sql - 正则表达式过滤带点和不带点的数字
- python - Flask-SQLAlchemy ORM/GeoAlchemy2 结果到字典,最终是 JSON
- css - ReactJs - 对齐导航栏项目
- javascript - 如何显示 href 的 react-intl 翻译结果?
- javascript - 在 JavaScript 中对数组进行排序
- scala - SBT插件——编译前执行自定义任务
- postgresql - 删除 RDS Postgres DB 时,是否清除连接的 Redis Elasticache?
- rest - NetBeans 生成的 REST 服务适用于 XML 请求,但不适用于 JSON
- javascript - 使用 window.hasOwnProperty()