arrays - VBA数组 - 下标超出范围
问题描述
我希望创建一个 5 行 2 列的 VBA 数组
varData = [{0, 0; 0, 0; 0, 0; 0, 0; 0, 0}]
并根据情况更改值
select Case sth
Case "1"
varData(0, 0) = varData(0, 0) + Cells(I, 1).Value
Case "2"
varData(0, 1) = varData(0, 1) + Cells(I, 1).Value
Case "3"
varData(0, 2) = varData(0, 2) + Cells(I, 1).Value
Case "4"
varData(0, 3) = varData(0, 3) + Cells(I, 1).Value
Case "5"
varData(0, 4) = varData(0, 4) + Cells(I, 1).Value
Case Else
'?
End Select
我在这一行遇到错误:
varData(0, 2) = varData(0, 2) + Cells(I, 1).Value
说“下标超出范围”
我也尝试将数组更改为
varData = [{0, 0, 0, 0, 0; 0, 0, 0, 0, 0}]
请帮助我了解我是如何超出范围的
解决方案
您正在使用 Evaluate 的简写,因此您正在通过与工作表相同的机制加载数组,因此基数是 1 而不是 0。
所以你想改变引用如下:
select Case sth
Case "1"
varData(1, 1) = varData(0, 0) + Cells(I, 1).Value
Case "2"
varData(1, 2) = varData(0, 1) + Cells(I, 1).Value
Case "3"
varData(1, 3) = varData(0, 2) + Cells(I, 1).Value
Case "4"
varData(1, 4) = varData(0, 3) + Cells(I, 1).Value
Case "5"
varData(1, 5) = varData(0, 4) + Cells(I, 1).Value
Case Else
'?
End Select
推荐阅读
- javascript - JavaScript:将DIV定位在文本选择上方?
- qliksense - Qlik Sense Set Analysis(A 或 B)和(C 或 D)
- express - 当我尝试通过快递上传文件时访问被拒绝
- scala - 在构造函数scala上使用模式匹配类型不匹配
- javascript - Socket IO Rooms:尝试在游戏应用程序中使用房间(react-native),以便多组人可以相互独立地玩游戏
- reactjs - Dockering Yii2 API、MySQL 数据库和 ReactJS
- java - Groovy 2.5.6 与 jdk 1.7 的兼容性
- django - 如何进行 Django 单元测试 - 通过 1 个类重用来自 1 个数据库的数据
- python - python绘制RecursionError:比较超过最大递归深度
- jquery - jQuery UI sortable - 获取与drop相邻的项目