返回列表 上一主題 發帖

新手發問 - 請問

dim 是用來製做上 "可放東西的器皿" 稱為"變量"
AS 之後的為"器皿"的屬性

這些是放數字(LONG,INTEGER)的器皿
Dim x as long
Dim y as integer
x=1  '把1放進X
y=2  '把2放進Y
msgbox(x+y) '這句把X和Y的數值加總顯示出來

這些個文字(STRING)的器皿
Dim S as STRING
S="ABC"
msgbox(S)'這句把S內容顯示出來


Dim arr(2) 是陣列
ARR(1)="A"
ARR(2)="B"
MSGBOX(ARR(1) & ARR(2)) '這句把ARR(1)和ARR(2)的內容合併顯示出來,即"AB"
陣列通常用於迴圈

學Excel VBA的網站:
http://forum.twbts.com/thread-6621-1-3.html
懂得發問,答案就會在其中

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

TOP

1.所以若要加快程式速度, 所以宣告時 ,若使用之Data 不會超過65536筆
    則用Dime x as integer 較佳.對嗎 ...
alex_wu 發表於 2012-5-31 13:26


1. 對. 如果只是十數個變量,這個年代的電腦,速度分別不會很大

2.
VARIANT 的意思是任意類型, 由excel自己由內容設定類型
dim abc as variant
abc = 123
這樣abc的類型就會變成 "variant/integer" 即integer

dim abc as variant
abc = "def"
abc的類型就會變成 "variant/string"

Dim arr(x) as integer
不是"陣列x", 而是有 X+1 個值的"陣列ARR"
例如
Dim abc(3) as integer
跟這4行類似
Dim abc1 as integer
Dim abc2 as integer
Dim abc3 as integer
Dim abc4 as integer

設定數值時:
abc(0)=1
abc(1)=2
abc(2)=3
abc(3)=4
相對於
abc1=1
abc2=2
abc3=3
abc4=4
懂得發問,答案就會在其中

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

TOP

嗯,謝謝,對宣告有基礎的認知了
可是為什麼要把資料丟到陣列裡呢?
直接把儲存格內的資料運算不是較快嗎?
...
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

        靜思自在 : 一個缺口的杯子,如果換一個角度看它,它仍然是圓的。
返回列表 上一主題