新手要學Excel VBA 需要先由那部分學起呢?
有去谷歌了一些網站
但是光 Dim (後面一堆命名就搞不懂了)
Ex: Dim x as long
Dim x as integater
Dime arr()
這是vba 開頭一定要做的東西嗎??作者: alex_wu 時間: 2012-5-29 23:23
謝謝二位大大,學習到了一些宣告變數的觀念了.
但是 long 與 integer 有什麼差異呢?
另外問一下,可以這樣宣告陣列嗎? Dime arr(x) 還是只能 Dime(1)?
=================================
Dim x as long 整數? (重覆嗎)
Dime x as Integer 整數? (重覆嗎)
Dim x as string 字串
Dim arr(x) 陣列 (可以這樣宣告陣列嗎?)
=================================作者: alumi 時間: 2012-5-30 23:18
Long 可存儲的數值 範圍, 比 Integer 大上許多,
相對來說, 運算速度也不及 Integer 所宣告變數來的快.
Integer 2 個位元組 -32,768 到 32,767
Long (long integer) 4 個位元組 -2,147,483,648 到 2,147,483,647
--------------------------------------------------------------------
Dimarr(x)
可以這樣子宣告, 但不建議.
建議後方 再定義其資料型態
例如:
Dim arr(x) as Variant
Dim arr(x) as string
Dim arr(x) as integer作者: alex_wu 時間: 2012-5-31 13:26
1.所以若要加快程式速度, 所以宣告時 ,若使用之Data 不會超過65536筆
則用Dime x as integer 較佳.對嗎?
2.請問以下認知對嗎 ?
Dim arr(x) as Variant --> 指定義陣列x的資料為 ?? Variant是??
Dim arr(x) as string --> 指定義陣列x的"內容"為"字串"
Dim arr(x) as integer --> 指定義陣列X的"內容"為"數值"作者: kimbal 時間: 2012-5-31 21:48
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
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