作者markbaseball (Mark)
看板Visual_Basic
标题[VBA ] redim的作用
时间Wed Apr 15 20:23:02 2015
请问版上大大有人可以用比较白话来解释redim这个函数的作用吗??
因为在网路上看到的解释都看不太懂,只知道用redim可以比较省记忆体
想请各位大大帮忙啦!!谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 163.22.18.73
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Visual_Basic/M.1429100584.A.43B.html
1F:→ MOONRAKER: 比较省是谁讲的 可否提供网址拜读一下 04/15 20:30
2F:→ wenyonba: 网路上的解释都看不懂我很怀疑,Google一搜就有MSDN 04/15 21:18
3F:推 johnpage: 重新配置记忆体大小 04/15 21:42
4F:推 fumizuki: redim不是函数,redim是陈述式,用来重新宣告阵列变数 04/15 23:01
5F:→ fumizuki: 有没有省记忆体是看你所有变数总共用了多少空间而定 04/15 23:03
6F:→ fumizuki: 跟redim无关 04/15 23:04
7F:→ ClubT: 我猜 如果你一开始 Redim arr(99) 用完後 Redim arr(0) 04/16 11:22
8F:→ ClubT: 第二次 Redim arr(0) 就会省记忆体 04/16 11:23
9F:→ MOONRAKER: 可是我以前看到都是dim k()玩一玩然後再redim k(5000) 04/16 15:34
10F:→ MOONRAKER: 这样怎麽会比较省记忆体 04/16 15:34
12F:→ markbaseball: 阵列大小,释放记忆体 04/16 21:05
13F:→ MOONRAKER: 你写什麽程式会写到这样释放记忆体?来个scenario听听 04/17 00:36
14F:→ wenyonba: 话说真的写VB的时候,释放通常就erase全放掉了,如果是用 04/17 09:10
15F:→ wenyonba: 到ReDim的时候,通常是阵列已经不够大,只会增加没在减少 04/17 09:10
16F:→ wenyonba: 的情况比较多XD 04/17 09:11
17F:推 johnpage: 记忆体不是1byte 1byte增加或减少 04/17 12:17
18F:→ MOONRAKER: 是阿 redim就跟realloc一样 用来扩张机会较大 04/17 23:07
19F:→ markbaseball: 隐性差分求option 04/18 13:52
20F:→ cf1064: 之前写程式有用到用在全域变数上 04/29 00:40
21F:→ cf1064: 例如我要宣告一个buttom阵列,但是不知道几个,所以先在全 04/29 00:41
22F:→ cf1064: 域dim buttom1() 04/29 00:41
23F:→ cf1064: 然後在某个function里下sql找出共十笔资料,所以要变成十 04/29 00:43
24F:→ cf1064: 个buttom1, 所以就要redim button1(10), 之後例如在某个fu 04/29 00:43
25F:→ cf1064: nction下要对button(2)下enable=false就可以用了 04/29 00:44
26F:→ cf1064: 因为在全域下无法下sql等等的指令,所以采用这个方法 04/29 00:44
27F:→ cf1064: 可以看我之前文章有 04/29 00:47