返回列表 上一主題 發帖

養成 所有變數都需要 事先定義的 好習慣

養成 所有變數都需要 事先定義的 好習慣

Option Explicit
' 上面的 這一行,必須擺在 所有副程式的外面

Sub test1026()
   Dim a As Integer
   
   a = 10 + 3
   MsgBox a
End Sub
天下為公

回復 1# sjgau

請問對程式運行效率有好處嗎?

其他好處?
謝謝
ss

TOP

本帖最後由 c_c_lai 於 2013-10-24 08:16 編輯

回復 2# sunnyso
回復 1# sjgau
變數是用來讓程式暫存資料的, 變數中所存的資料就叫做變數的「值」,
變數的值可以是字串、數字、布林值...等資料。
在使用變數時,必須要注意變數的有效範圍, 否則可能造成程式運作結果錯誤。
在後期出現的一些高階程式語言中不需要事先宣告也可以直接使用變數。
事先宣告變數的意思是指, 譬如以 Variant 指令告訴 VBA, 程式待會兒需要使用這個名稱的變數,
請電腦在一開始執行程式時就為該變數保留一些記憶體空間。
若是沒有事先宣告, 則 VBA會在該變數第一次出現時,  才依需要分配記憶體空間給它。

P.S.  Variant 是一種特殊的資料型態,是所有沒被明確宣告為其他型態
      (用如 Dim、Private、Public 或 Static 的陳述式)之變數的資料型態。
      您可以用 Variant 資料型態來取代任何的資料型態,以更有彈性的方式來運算。
      如果 Variant 變數的內容是數字,它可以用字串來表示數字或是用它實際的值來表示,
      由內容來決定。(此段 P.S. 係摘錄自 Excel (Help) 說明)

宣告變數與指定變數值
不過有經驗的程式設計師都會建議你在使用變數前先行宣告,
這樣一方面可以確認變數的有效範圍 , 避免程式錯誤;
另一方面, 養成這樣的好習慣, 對於日後學習其它規定更嚴格的程式語言時會很有幫助
(許多程式語言如 CBasic、Java 、C/C++、COBOL、Pascal...等在使用變數時必須事先宣告)。

Option Explicit 之陳訴即在模組層次中強迫每個在模組裏的變數都必須明確的宣告。
當在模組中使用時,必須以 Dim, Private、Public、ReDim 或 Static 陳述式來明確宣告所有的變數。
如果使用未宣告的變數名稱,則在編譯階段時,會發生錯誤。
如果未使用 Option Explicit 陳述式,則所有未宣告的變數都是 Variant 型態,
除非預設的型態另以 Deftype 陳述式所指定過。

附註 Option Explicit 可避免打錯變數名稱或在有效範圍內相同的變數名稱。
(此段 Option Explicit 之陳訴係摘錄自 Excel (Help) 說明)
最後希望大家於撰寫程式時,能養成所有使用變數都需要事先定義的好習慣。

TOP

回復 2# sunnyso
明確指定變數資料型態對效率也有好處,可拿 http://forum.twbts.com/thread-10647-1-1.html 試試

TOP

        靜思自在 : 要比誰更受誰.不要比誰更怕誰。
返回列表 上一主題