1. 程式人生 > >Excel VBA 型別轉換函式

Excel VBA 型別轉換函式

CBool函式

描述
返回表示式,此表示式已轉換為 Boolean(布林型別/是否型別) 子型別的 Variant(變數)。
語法
CBool(expression)
expression 是任意有效的表示式。

說明
如果 expression 是零,則返回 False;否則返回 True。如果 expression 不能解釋為數值,則將發生執行時錯誤。 下面的示例利用 CBool 函式把 expression(表示式) 轉換為 Boolean。如果 expression 不為零, CBool 返回 True;否則,返回 False。
Dim A, B, Check
A = 5: B = 5 ' 初始化變數
Check = CBool(A = B) ' check的值為 True

A = 0 '定義變數
Check = CBool(A) '複選框設為 False

Cbyte函式

描述
返回表示式,此表示式已被轉換為 Byte(位元組型別) 子型別的 Variant。
語法
CByte(expression)
expression 引數是任意有效的表示式。

說明
通常,可以使用子型別轉換函式書寫程式碼,以顯示某些操作的結果應被表示為特定的資料型別,而不是預設型別。例如,在出現貨幣、單精度、雙精度或整數運算的情況下,使用 CByte 強制執行位元組運算。
CByte 函式用於進行從其他資料型別到 Byte 子型別的的國際公認的格式轉換。例如對十進位制分隔符(如千分符)的識別,可能取決於系統的區域設定。

如果 expression 在 Byte 子型別可接受的範圍之外,則發生錯誤。下面的示例利用 CByte 函式把 expression 轉換為 byte:

Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble 是一個雙精度值
MyByte = CByte(MyDouble) ' MyByte 包含 126

Ccur函式

描述
返回表示式,此表示式已被轉換為 Currency 子型別的 Variant。
語法
CCur(expression)
expression 引數是任意有效的表示式。

說明
通常,您可以使用子型別資料轉換函式書寫程式碼,以顯示某些操作的結果應當被表達為特定的資料型別,而非預設的資料型別。例如在整數運算的情況下,使用 CCur 函式強制進行貨幣計算。
CCur 函式用於進行從其他資料型別到 Currency 子型別的國際公認的格式轉換。例如,對十進位制分隔符和千位分隔符的識別取決於系統的區域設定。


下面的示例利用 CCur 函式把 expression 轉換為 Currency:
Dim MyDouble, MyCurr
MyDouble = 543.214588 ' MyDouble 是雙精度的
MyCurr = CCur(MyDouble * 2) '把 MyDouble * 2 (1086.429176) 的結果轉換為
' Currency (1086.4292)


Cdate函式

描述
返回表示式,此表示式已被轉換為 Date 子型別的 Variant。
語法
CDate(date)
date 引數是任意有效的日期表示式。

說明
IsDate 函式用於判斷 date 是否可以被轉換為日期或時間。CDate 識別日期文字和時間文字,以及一些在可接受的日期範圍內的數字。在將數字轉換為日期時,數字的整數部分被轉換為日期,分數部分被轉換為從午夜開始計算的時間。
CDate 根據系統的區域設定識別日期格式。如果資料的格式不能被日期設定識別,則不能判斷年、月、日的正確順序。另外,如果長日期格式包含表示星期幾的字串,則不能被識別。

下面例子利用 CDate 函式把字串轉換為日期。通常,建議不要使用硬編碼日期和時間(如下例所示)。而要使用日期和時間的文字形式(例如 #10/19/1962#, #4:45:23 PM#)。

MyDate = "October 19, 1962" ' 定義日期
MyShortDate = CDate(MyDate) ' 轉換為日期資料型別
MyTime = "4:35:47 PM" ' 定義時間
MyShortTime = CDate(MyTime) ' 轉換為日期資料型別

Cdbl函式

描述
返回表示式,此表示式已被轉換為 Double 子型別的 Variant。
語法
CDbl(expression)
expression 引數是任意有效的表示式。

說明
通常,您可以使用子型別資料轉換函式書寫程式碼,以顯示某些操作的結果應當被表達為特定的資料型別,而非預設的資料型別。例如在出現貨幣或整數運算的情況下,使用 CDbl 或 CSng 函式強制進行雙精度或單精度算術運算。
CDbl 函式用於進行從其他資料型別到 Double 子型別的國際公認的格式轉換。例如,十進位制分隔符和千位分隔符的識別取決於系統的區域設定。下面的示例利用 CDbl 函式把 expression 轉換為 Double。

Dim MyCurr, MyDouble
MyCurr = CCur(234.456784) ' MyCurr 是 Currency 型。
MyDouble = CDbl(MyCurr * 8.2 * 0.01) ' 把結果轉換為 Double 型。


CInt函式

描述
返回表示式,此表示式已被轉換為 Integer 子型別的 Variant。
語法
CInt(expression)
expression 引數是任意有效的表示式。

說明
通常,可以使用子型別轉換函式書寫程式碼,以顯示某些操作的結果應被表示為特定的資料型別,而不是預設型別。例如,在出現貨幣、單精度或雙精度運算的情況下,使用 CInt 或 CLng 強制執行整數運算。
CInt 函式用於進行從其他資料型別到 Integer 子型別的國際公認的格式轉換。例如對十進位制分隔符(如千分符)的識別,可能取決於系統的區域設定。

如果 expression 在 Integer 子型別可接受的範圍之外,則發生錯誤。

下面的示例利用 CInt 函式把值轉換為 Integer:

Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble 是 Double。
MyInt = CInt(MyDouble) ' MyInt 包含 2346。


--------------------------------------------------------------------------------
注意 CInt 與 Fix 和 Int 函式不同,後兩者將數字的分數部分截尾取整,而不是四捨五入。當分數部分恰好為 0.5 時,CInt 函式通常將其四捨五入為最接近的偶數。例如,0.5 被四捨五入為 0,而 1.5 被四捨五入為 2。
--------------------------------------------------------------------------------


CLng函式

描述
返回表示式,此表示式已被轉換為 Long 子型別的 Variant。
語法
CLng(expression)
expression 引數是任意有效的表示式。

說明
通常,您可以使用子型別資料轉換函式書寫程式碼,以顯示某些操作的結果應當被表達為特定的資料型別,而非預設的資料型別。例如,在出現貨幣運算、單精度或雙精度算術運算的情況下,使用 CInt 或 CLng 函式強制進行整數運算。
CLng 函式用於進行從其他資料型別到 Long 子型別的的國際公認的格式轉換。例如,對十進位制分隔符和千位分隔符的識別取決於系統的區域設定。

如果 expression 取值不在 Long 子型別的允許範圍內,則會出現錯誤。

下面的示例利用 CLng 函式把值轉換為 Long:

Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427.45: MyVal2 = 25427.55 ' MyVal1, MyVal2 是雙精度值。
MyLong1 = CLng(MyVal1) ' MyLong1 包含 25427。
MyLong2 = CLng(MyVal2) ' MyLong2 包含 25428。


--------------------------------------------------------------------------------

注意 CLng 函式與 Fix 和 Int 函式功能不同,後兩者函式對數值的小數部分進行截尾取整而不是四捨五入。當小數部分恰好等於 0.5 時, CLng 函式通常向與此數最接近的偶數取整。例如,0.5 取整為 0、1.5 取整為 2。

--------------------------------------------------------------------------------


CSng函式
描述
返回表示式,該表示式已被轉換為 Single 子型別的 Variant。
語法
CSng(expression)
expression 引數是任意有效的表示式。

說明
通常,可以使用子型別轉換函式書寫程式碼,以顯示某些操作的結果應被表示為特定的資料型別,而不是預設型別。例如,在出現貨幣或整數運算的情況下,使用 CDbl 或 CSng 強制執行雙精度或單精度運算。
CSng 函式用於進行從其他資料型別到 Single 子型別的國際公認的格式轉換。例如,對十進位制分隔符(如千分符)的識別取決於系統的區域設定。

如果 expression 在 Single 子型別允許的範圍之外,則發生錯誤。

下面的示例利用 CSng 函式把值轉換為 Single:

Dim MyDouble1, MyDouble2, MySingle1, MySingle2 ' MyDouble1, MyDouble2 是雙精度值。
MyDouble1 = 75.3421115: MyDouble2 = 75.3421555
MySingle1 = CSng(MyDouble1) ' MySingle1 包含 75.34211。
MySingle2 = CSng(MyDouble2) ' MySingle2 包含 75.34216。


Cstr函式

描述
返回表示式,該表示式已被轉換為 String 子型別的 Variant。
語法
CStr(expression)
expression 引數是任意有效的表示式。

說明
通常,可以使用子型別轉換函式書寫程式碼,以顯示某些操作的結果應被表示為特定的資料型別,而不是預設型別。例如,使用 CStr 強制將結果表示為 String。
CStr 函式用於替代 Str 函式來進行從其他資料型別到 String 子型別的國際公認的格式轉換。例如對十進位制分隔符的識別取決於系統的區域設定。

expression 根據下表決定返回的資料:

如果 expression 為 CStr 返回
Boolean 字串,包含 True 或 False。
Date 字串,包含系統的短日期格式日期。
Null 執行時錯誤。
Empty 零長度字串 ("")。
Error 字串,包含跟隨有錯誤號碼的單詞 Error。
其他數值 字串,包含此數字。


下面的示例利用 CStr 函式把數字轉換為 String:

Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble 是雙精度值。
MyString = CStr(MyDouble) ' MyString 包含 "437.324"