作者markbaseball (Mark)
看板Visual_Basic
標題[VBA ] redim的作用
時間Wed Apr 15 20:23:02 2015
請問版上大大有人可以用比較白話來解釋redim這個函數的作用嗎??
因為在網路上看到的解釋都看不太懂,只知道用redim可以比較省記憶體
想請各位大大幫忙啦!!謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.22.18.73
※ 文章網址: https://webptt.com/m.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