Board logo

標題: Dim定義問題 [打印本頁]

作者: basarasy    時間: 2010-12-15 17:07     標題: Dim定義問題

本帖最後由 basarasy 於 2010-12-15 21:59 編輯

1. vba可以這些定義嗎?
dim i!  '定義i為single型
dim i#  '定義i為Double型
dim i@  '定義i為Currence型
dim i$  '定義i為String型
dim i%  '定義i為Integer型
dim i&  '定義i為Long型

2. 用dim i% 和 dim i as Integer 有沒有分別?
3. 用Long 會比Integer 的計算速度快嗎?
作者: FAlonso    時間: 2010-12-15 19:34

第一個問題:可以
其餘問題待版主解答吧
作者: GBKEE    時間: 2010-12-15 20:30

本帖最後由 GBKEE 於 2010-12-15 20:34 編輯

回復 1# basarasy
3. 用Long 會比String 的計算速度快嗎????
VBA 的說明
Integer 變數係以範圍為 -32,768 到 32,767 之 16 位元 (2 個位元組) 數字的形式儲存。Integer 的型態宣告字元是百分比符號(%)
String之字元碼的範圍從 0 到 255。字元集的前 128 個字元 ( 0 到 127 ) 對應於標準的 U.S 鍵盤上的字元與符號。這前 128 字元與 ASCII 字元集中所定義的相同。後 128 字元 (128 到 255) 則代表特殊字元,例如國際字元,重音符號,貨幣符號及分數。String 的型態宣告字元為 ($)
Long (長整數)變數係以範圍從 -2,147,483,648 到 2,147,483,647 之 32 位元 (4 個位元組) 有號數字形式儲存。Long 的型態宣告字元為 (&)


作者: basarasy    時間: 2010-12-15 22:02

回復 3# GBKEE

sorry.打錯了><.
2. 用dim i% 和 dim i as Integer 有沒有分別?
3. 用Long 會比Integer 的計算速度快嗎?(寫開vb的人說的)
作者: Hsieh    時間: 2010-12-15 22:14

回復 4# basarasy


用dim i% 和 dim i as Integer 有沒有分別?    兩個敘述是一樣的
用Long 會比Integer 的計算速度快嗎?(寫開vb的人說的)   
資料型態是為了確定型態而宣告,非因型態不同而有執行速度之差,
有宣告會比沒宣告快,但不同型態會產生不同數值範圍
作者: Min    時間: 2010-12-15 22:49

1. 當然可以! 因為師出同門^^"
2. 用dim i% 和 dim i as Integer 有沒有分別? 一個是簡寫,一個是完整寫法~ 使用上無任何差異!
3. 用Long 會比Integer 的計算速度快嗎? 如果都是要他們數1~10,那速度是一樣的! 他們的差異是在於型態,不是速度~
作者: basarasy    時間: 2010-12-15 23:33

謝謝大大們的指導.
我自己會覺得 Integer比 Long  的計算速度快(變數範圍在Integer內)
,Integer用(2 個位元組)  Long  用 (4 個位元組).

還有vba的計算速度問題.(我知道這個問題是要長時間學習的)
有什麼方法可以加快計算速度?
是否越少vba碼就會快?
作者: oobird    時間: 2010-12-16 09:39

我自己會覺得 Integer比 Long  的計算速度快(變數範圍在Integer內)
,Integer用(2 個位元組)  Long  用 (4 個位元組).
數百萬分之一秒的差距可以不必去計較。誰快誰慢曾有人測試Long會快些,不過只要類型正確感覺不到差異的。
有什麼方法可以加快計算速度?
正確的方法就是最快的方法。
是否越少vba碼就會快?
正好相反!
作者: basarasy    時間: 2010-12-18 11:17

回復 8# oobird

    Worksheets("Sheet1").Range("A1").Value = "100"  會比 Range("A1").Value = "100"  快?
作者: Hsieh    時間: 2010-12-18 11:30

回復 9# basarasy

基本上你這個敘述是一模一樣的
沒有快慢之分
作者: HUNGCHILIN    時間: 2010-12-18 12:51

回復 9# basarasy
呵呵 這個^^

只要對變數做正確的定義
我想對程式的速度都是有幫助的
作者: solely    時間: 2010-12-18 20:34

回復 1# basarasy
以我個人的經驗
宣告在小程式的計算速度上,應該沒什麼差別~
剛測試我寫的一支計算式(薪資)
所花的時間如下
00:48:64....................00:49:24.....................00:48:89
Dim ss As Date...........Dim ss, CC, i , r, p........'Dim ss, CC, i , r, p
Dim CC As String
Dim i As Integer
Dim r As Integer
Dim p As Integer
(相差不到1秒....)
感覺....好像是在測試我按碼錶的反應XD
作者: 呆呆    時間: 2010-12-18 23:53

long 是不是會比 integer快,要看cpu而定
若是32位元的cpu應該是long比比較快
若是16位元的cpu 應該是integer 比較快
這和cpu的處理方式有關
作者: basarasy    時間: 2010-12-19 00:57

謝謝大大們的指導.
因為我平時寫的vba都用了很多行,還vba的一少部份慢 我想是看不出,但有很多的一少部份就會慢了.

看見大大們的vba碼 真的想學, 同一用法的vba我用 10行 ,大大們只用2-3行就寫了出來><
行數太多也會慢><




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)