VBA如何访问数组内嵌套的二维数组并解决下标越界问题
嵌套二维数组直接访问赋值方案
- 报错原因:你写的
a = arry(0)(0)语义为获取第一层数组下标为0的子二维数组中,下标为(0,0)的单个元素,而非取出整个子二维数组。如果子数组的下标不从0开始,或你本身需要获取完整子数组,该写法就会触发下标越界错误或仅返回单个元素。 - 正确实现方式:如果要直接获取完整的子二维数组并赋值给变量,仅需去掉第二组下标括号即可,写法为
a = arry(0),该操作会直接将第一层数组下标为0的完整二维数组复制到变量a中,无需循环遍历单个元素重新写入。
VBA环境示例:
' 构造嵌套数组结构 Dim parentArr(1) As Variant Dim childArr(1, 1) As String childArr(0, 0) = "示例值1" childArr(0, 1) = "示例值2" parentArr(0) = childArr ' 直接赋值整个子数组 Dim targetArr As Variant targetArr = parentArr(0) ' 验证赋值结果 Debug.Print targetArr(0, 1) ' 输出"示例值2"
内容的提问来源于stack exchange,提问作者Kaan
相关产品推荐
相关产品推荐

