|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
jinbo3535 发表于 2013-5-6 22:16
灰袍老师:
把 dim arr(1 to 100, 1 to 4) 改为 dim arr(1 to 400),这句看得懂,把2维改1维!
...
arr(m, n) 改为 arr( 4*(m-1) + n ),这句看不太懂?
===================================
就是说,原本是 arr(1,3) 访问二维数组,第一行第3列的元素
改为一维数组以后,该元素的位置就变成 arr(3) ,第1行第3个元素
同理,原本是 arr( 10,2) ,现在就是 arr( 4*(10-1) +2 = arr(38)
其实就是计算 改为一维数组以后,对应的新数组位置而已。
100 MB 的数组要自己算了,如果每个数组元素占 4 字节
那么 dim arr(1 to 25 * 1048576) 就会声明一个刚好 100MB 的数组
不过实际上也不需要这么精密
直接 dim arr( 1 to 10万),然后
lastpos = ubound(arr)
每当数组元素增加到 lastpos 的时候
就
redim preserve arr (1 to lastpos + 10万 )
lastpos = ubound(arr)
即可。 |
评分
-
1
查看全部评分
-
|