返回列表 上一主題 發帖

新手發問 - 請問

嗯,謝謝,對宣告有基礎的認知了
可是為什麼要把資料丟到陣列裡呢?
直接把儲存格內的資料運算不是較快嗎?
...
alex_wu 發表於 2012-5-31 22:23



可是為什麼要把資料丟到陣列裡呢?
直接把儲存格內的資料運算不是較快嗎?

我也讚成盡量把資料放在頁面儲存格上處理,
陣列通常是用來作暫時位置,不用找個頁面來用.
例如把文字分拆
arr= split("ABC;DEF;GHG",";")->
arr(0) 會變成ABC
arr(1) 會變成DEF
arr(2) 會變成GHG

另外問一下,學了宣告(Dim)之後,下一階段需要學什麼呢?
可以看一下 function/sub,  for/next, loop/while,
excel相關的是RANGE() 的用法.
最簡單是從錄製巨集中學習.
懂得發問,答案就會在其中

今日の一秒は  明日にない
http://kimbalko-chi.blogspot.com
http://kimbalko.blogspot.com

TOP

謝謝分析,原來陣列的好處是陣列所占的資源較少.我想意思
應該是-->陣列有一點像是開了另一個工作表來進行運算.
(但實際是透過陣列內資料+公式進行運算) 突然有點懂了
謝謝各位大大. (對我們新手而且,還是先熟悉頁面儲存格運算
再切入VBA應該較快)
下一階段再挑戰看看由簡易的錄製巨集 + 迴圈試試 , 謝謝大家

TOP

嗯,謝謝,對宣告有基礎的認知了
可是為什麼要把資料丟到陣列裡呢?
直接把儲存格內的資料運算不是較快嗎?
...
alex_wu 發表於 2012-5-31 22:23


1. Excel 工作表, 本身就是一個大型的 二維陣列.
   但它每一個儲存格, 不定大小, 可存放各類型態的資料與相關屬性, 故相對而言, 是比 單一型態的陣列, 耗用更多的記憶體.
   優點: 可視化

2. VBA 內的單一型態陣列, 在程式執行時, 其速度, 遠比再去調用 工作表的儲存格資料, 還要來的快.

TOP

回復 7# alex_wu

1.所以若要加快程式速度, 所以宣告時 ,若使用之Data 不會超過65536筆
    則用Dim x as integer 較佳.對嗎?
2.請問以下認知對嗎 ?
Dim arr(x) as Variant  --> 指定義陣列x的資料為 ?? Variant是??
Dim arr(x) as string    --> 指定義陣列x的"內容"為"字串"
Dim arr(x) as integer  --> 指定義陣列X的"內容"為"數值"
------------------------------------------------------------------------
感覺有點怪怪的.
X 為整數值, 其值的範圍為 -32768 ~ 32767
可以這樣子宣告
Const  X as Integer = 32767
Dim Arr(x) as String    ' 陣列索引範圍為 0~32766
或者
Dim Arr(1 to X) as String ' 陣列索引範圍為 1  ~ 32767

若您想在程式碼中, 所宣告的陣列, 是由 1 開始, 而不是 0 開始,
請在最上面加上一行 Option Base 1

TOP

        靜思自在 : 要用心,不要操心、煩心。
返回列表 上一主題