了解變數的存留期
變數保留其值的時間稱為其存留期。 變數的值可能會在其存留期內變更,但會保留一些值。 當變數遺失 範圍時,它不再具有 值。
當 程式 開始執行時,所有變數都會初始化。 數值變數會初始化為零,可變長度字串會初始化為零長度字串 (「」) ,而固定長度字串會填入 ASCII 字元碼 0 所代表的字元,或 Chr ( 0 ) 。 Variant 變數會初始化為 空白。 使用者定義型別變數的每個專案都會初始化,就像是個別的變數一樣。
當您宣告 物件變數時,空間會保留在記憶體中,但其值會設定為 Nothing ,直到您使用 Set 語句將物件參考指派給它為止。
如果變數的值在執行程式碼期間未變更,則會保留其初始化值,直到失去範圍為止。
使用Dim語句宣告的程式層級變數會保留值,直到程式完成執行為止。 如果程式呼叫其他程式,變數會在那些程式也執行時保留其值。
如果以 Static 關鍵字宣告程式層級變數,只要程式碼在任何 模組中執行,變數就會保留其值。 當所有程式碼都完成執行時,變數會遺失其範圍和其值。 其存留期與 模組層級 變數相同。
模組層級變數與靜態變數不同。 在 標準模組 或 類別模組中,它會保留其值,直到您停止執行程式碼為止。 在類別模組中,只要類別的實例存在,它就會保留其值。 模組層級變數會取用記憶體資源,直到您重設其值為止,因此只有在必要時才使用它們。
如果您在Sub或Function語句之前包含Static關鍵字,則會在呼叫之間保留程式中所有程式層級變數的值。
另請參閱
支援和意見反應
有關於 Office VBA 或這份文件的問題或意見反應嗎? 如需取得支援服務並提供意見反應的相關指導,請參閱 Office VBA 支援與意見反應。