1 问题:VBA报错:不能给数组赋值!
- 其实并不是 所有数组不能赋值
- 其实是不能给静态数组,整体赋值!
- 只是因为当前处理的是一个静态数组
2 什么是静态数组 (只是大小静态!! 赋值可变!)
2.1 静态数组
- 静态数组,不是数组完全不能修改
- 而是数组大小已经确定了
2.2 静态数组不能被整体赋值
- 静态数组,不能被整体赋值,无论用array() 或者[{}]等各种方法都一样不行
- array()函数返回的必须是变量,或变量对等的动态数组,不能赋值给静态数组
- arr2 = [{3, 4, 5, "6", 7, 0, 1, 2, 8, 9}] 也不行
- arr2() = Array(3, 4, 5, "6", 7, 0, 1, 2, 8, 9)
2.3 静态数组也不能被重复定义,数组大小
- 也不能被重复 定义大小
2.4 但是,静态数组可以被单个元素赋值
3 动态数组 可以被各种赋值
- 动态数组可以被整体赋值改变,或者被单个改版
- 但是动态数组的赋值同样要小心
- 合理使用 redim preserve arr() 大小,保留之前的值