ExcelVBA程式設計系列之資料型別 1 常量

2021-08-26 00:03:30 字數 2975 閱讀 1482

常量,也稱常數,在程式過程中其值保持不變。常數可以是字串、數值、另一常數、任何(除乘冪與is之外的)算術運算子或邏輯運算子的組合。每個主應用程式都可定義自己的一組常數,也可以用const語句定義附加常數。定義常量使程式設計變得更簡單,可在**中的任何地方使用常數代替實際的值或字串,從而提高程式的可讀性,並且更容易修改這個值。

1、系統自定義的常量

在早期版本的vb中,常量的名稱都是用大寫字串加上乙個下劃線組成,例如:tile_horizontal。在系統自定義的常量中,由於具有相同名稱的常量存在於多個物件庫中,而且這些常量可能具有不同的值,因而可能會造成混淆。有兩種方法來對常量名進行限定:

(1)用字首限定常量

(2)用庫引用限定常量

可利用下面的語句來限定對常量的引用:

[libname.] [modulename.]constname

說明:①libname,可選的。定義此常數的型別庫。

②modulename,可選的。定義此常數的型別庫所包含的模組的名稱,可以利用「物件瀏覽器」來找到模組的名稱。

③constname,在型別庫中定義的常數名稱。

excelvba自定義常量型別,共16種,見下表。

vba自定義常量型別表

常量型別

說明

常量型別

說明

calendar

日曆常量

keycode

滑鼠、鍵盤常量

calltype

呼叫常量

miscellaneous

控制鍵常量

color

顏色常量

msgbox

訊息框常量

compiler

編譯常量

queryclose

程式控制常量

date

日期常量

shell

窗體控制常量

dir、getattr和setattr

目錄常量

strconv

字串轉化常量

imestatus

區域ime常量

系統顏色

系統顏色常量

instr、strcomp

字元比較常量

vartype

資料型別常量

excelvba自定義常量,另見vba自定義常量列表

,或查閱vba幫助系統。

此外,excel內建常量,另見excel內建常量列表,或查閱vba幫助系統。

2、使用者自定義的常量

符號或使用者自定義的常數都是利用const語句來宣告。

語法:[public|private] const常量名[as type] = expression

說明:(1)[public|private],可選的引數,宣告常量的作用域。public關鍵字定義的常量適用於所有的模組,並在模組的第乙個過程前進行宣告;private關鍵字定義的常量只適用於當前模組,並在該模組的第乙個過程前進行宣告;若只是在某個過程中使用常量,則在sub或function語句之後進行宣告。

(2)常量名(constname),必要的引數,為variant(string)型,名稱要遵守變數命名的規定。

(3)expression,必要的引數,為文字、其他的條件編譯常數或包含除了is以外的算術或邏輯運算子的任意組合。不能使用變數,使用者自定義的函式,或visual basic的內部函式(如chr)。

(4)type,可選的引數,若沒有宣告資料型別,vba將根據值決定資料的最合適的資料型別。可以是byte、boolean、integer、long、currency、single、double、decimal(目前尚不支援)、date、string或variant。所宣告的每個變數都要使用乙個單獨的as型別子句。

(5)若更改vba過程中的某個常量的值,會出現錯誤訊息。

(6)在預設情況下常數是過程級或單個模組級的。過程中的常數總是過程級的,不能改變。在標準模組中,可以用public關鍵字來改變模組級常數的作用域。但在類模組中,常數只能是過程級或單個模組級的,用public關鍵字也不能改變其作用域。

(7)可在一行中宣告多個常數,即用逗號將每個常數賦值分開。用這種方法宣告常數時,如果使用了publicprivate關鍵字,則該關鍵字對該行中所有常數都有效。

3、條件編譯常量

利用#const語句宣告。

語法:#constconstname=expression

說明:(1)constname,必要的引數,為variant(string)型,名稱要遵守變數命名的規定。

(2)expression,必要的引數,為文字、其他的條件編譯常數或包含除了is以外的算術或邏輯運算子的任意組合。使用乙個用#const定義的標準常數,或者使用乙個未定義的常數,都會導致錯誤發生。反之,用#const關鍵字定義的常數也只能用於條件編譯。

(3)條件編譯常數在其出現的模組中總是private,不可能利用#const指令建立public編譯常數,public編譯常數只能在使用者介面中建立。不管條件編譯常數在程式中的位置如何,都總是在模組級別中進行計算。

Excel VBA巨集程式設計

當文案小妹向你抱怨excel函式不夠用,某些特殊操作雖然簡單但繁瑣重複,那麼。是時候展現真正的技術了 先推薦個比較好的文件 閹割版的年月日生成 sub getid dim str as string for i 2 to 5001 str worksheets 1 cells i,13 worksh...

Excel VBA程式設計 01 入門

在excel種需要開啟 開發工具 和 啟用所有巨集 兩點 開啟開發工具選項 巨集啟用 選單欄才會有開發工具選項 點選visualbasic,編寫第乙個vba程式 右鍵新建乙個模組以編寫程式 第乙個vba程式 sub 第乙個vba程式 dim 姓名 as string 姓名 inputbox 請輸入你...

Excel VBA資料排序

每天更新excel vba經典 祝你工作和學習更輕鬆!在如圖1所示資料列表中,需要按總成績從高到低進行排序,示例 如下。sub sortdemo range a1 sort key1 總成績 order1 xldescending,header xlyes endsub 執行sortdemo過程,排...