每个函数都可以将表达式(表达式:算术或逻辑运算符、常数、函数和字段名称、控件和属性的任意组合,计算结果为单个值。
表达式可执行计算、操作字符或测试数据。
)强制转换为特定的数据类型(数据类型:决定字段可拥有的数据类型的字段特征。
数据类型包括Boolean、Integer、Long、Currency、Single、Double、Date、String 和Variant(默认)。
)。
语法CBool(expression)CByte(expression)CCur(expression)CDate(expression)CDbl(expression)CDec(expression)CInt(expression)CLng(expression)CSng(expression)CStr(expression)CVar(expression)必选的expression参数(参数:为操作、事件、方法、属性、函数或过程提供信息的值。
)是任何字符串表达式(字符串表达式:任一求值为一列连续字符的表达式。
表达式的元素可以是:返回字符串或字符串Variant (VarType 8) 的函数;字符串字面值、常量、变量或Variant。
)或数值表达式(数值表达式:计算结果为数字的任何表达式。
表达式可以是变量、常数、函数和运算符的任意组合。
)。
返回类型函数名称决定返回类型,如下所示:函数返回类型EXPRESSION 参数的范围CBool B oolean 任何有效的字符串或数值表达式。
CByte Byte 0 到255。
CCur Currency -922,337,203,685,477.5808 到922,337,203,685,477.5807。
CDate Date 任何有效的日期表达式。
CDbl Double 对于负值,-1.79769313486231E308 到-4.94065645841247E-324;对于正值,4.94065645841247E-324 到1.79769313486232E308。
CDec Decimal 对于整数(即没有小数的数字),+/-79,228,162,514,264,337,593,543,950,335。
对于具有28 位小数的数字,值域范围是+/-7.9228162514264337593543950335。
可能的最小非零数字为0.0000000000000000000000000001。
CInt Integer -32,768 到32,767;小数部分被四舍五入。
CLng Long -2,147,483,648 到2,147,483,647;小数部分被四舍五入。
CSng Single 对于负值,-3.402823E38 到-1.401298E-45;对于正值,1.401298E-45 到3.402823E38。
CStr String CStr 的返回值取决于expression 参数。
CVar Variant 对于数字,与双精度型的值域范围相同。
对于非数字值,与String的值域范围相同。
注解如果传递给该函数的expression位于要转换为的目标数据类型的值域范围之外,则将发生错误。
通常,可以在代码中使用数据类型转换函数,以表明某个操作的结果应表示为特定数据类型而非默认的数据类型。
例如,使用CCur在通常会出现单精度、双精度或整型运算的地方强制使用货币运算。
应该使用数据类型转换函数而不是Val来提供数据类型之间国际认可的转换。
例如,当使用CCur时,不同的小数点、不同的千位分隔符以及各种货币选项都会根据计算机的区域设置正确识别。
当小数部分恰好为0.5 时,CInt和CLng始终都会将其舍入到最接近的偶数。
例如,0.5 舍入到0,而1.5 舍入到2。
CInt和CLng与Fix和Int函数不同,后者会将数字的小数部分截断,而不会对其进行舍入。
另外,Fix和Int会始终返回与传入类型相同类型的值。
可以使用IsDate函数确定date是否可以转换为日期或时间。
CDate可识别日期文本和时间文本,以及处于可接受的日期范围内的某些数字。
将数字转换为日期时,整数部分将被转换为日期。
数字的任何小数部分都将被转换为一天中的时间(从午夜12 点开始计算)。
CDate将根据系统的区域设置(区域设置:对应于给定语言和国家/地区的一组信息。
)识别日期格式。
如果采用可识别的日期设置之外的其他格式提供日期值,则可能无法确定正确的年、日、月顺序。
此外,如果长日期格式中还包含星期字符串,也不能识别此格式。
CVDate函数也提供了与Visual Basic 早期版本的兼容性。
CVDate函数的语法与CDate 函数的语法相同;不过,CVDate会返回一个Variant值(其子类型为Date)而不是实际的Date类型。
由于目前存在一个固有的Date类型,因此已不再需要CVDate了。
可以将表达式转换为Date,然后将其赋值给Variant,从而达到相同的效果。
此技术与所有其他固有类型到其对应的Variant子类型的转换一致。
CDec函数不会返回离散数据类型;相反,它会始终返回一个其值已转换为Decimal子类型的Variant。
示例以下示例演示了此功能在Visual Basic for Applications (VBA) 模块中的使用。
有关使用VBA 的详细信息,请在“搜索”旁边的下拉列表中选择“开发人员参考”,然后在搜索框中输入一个或多个词条。
CBool 函数此示例使用CBool函数将表达式转换为Boolean值。
如果表达式的求值结果是一个非零值,CBool将返回True;否则,它将返回False。
Dim A, B, CheckA = 5:B = 5 ' 初始化变量。
Check = CBool(A = B) ' Check 包含 True。
A = 0 ' 定义变量。
Check = CBool(A) ' Check 包含 False。
CByte 函数此示例使用CByte函数将表达式转换为Byte值。
Dim MyDouble, MyByteMyDouble = 125.5678 ' MyDouble 是 Double 数据类型值。
MyByte = CByte(MyDouble) ' MyByte 包含 126。
CCur 函数此示例使用CCur函数将表达式转换为Currency值。
Dim MyDouble, MyCurrMyDouble = 543.214588 ' MyDouble 是 Double 数据类型值。
MyCurr = CCur(MyDouble * 2)' 将 MyDouble * 2 (1086.429176) 的结果转换为' Currency 数据类型值 (1086.4292)。
CDate 函数此示例使用CDate函数将字符串转换为Date值。
通常,建议不将日期和时间硬编码为字符串(如本示例中所示)。
请改用日期文本和时间文本,如#2/12/1969# 和#4:45:23 PM#。
Dim MyDate, MyShortDate, MyTime, MyShortTimeMyDate = "February 12, 1969"' 转换为 Date 数据类型。
MyShortDate = CDate(MyDate)MyTime = "4:35:47 PM"' 转换为 Date 数据类型。
MyShortTime = CDate(MyTime)CDbl 函数此示例使用CDbl函数将表达式转换为双精度型值。
Dim MyCurr, MyDoubleMyCurr = CCur(234.456784)' 将结果转换为 Double 数据类型。
MyDouble = CDbl(MyCurr * 8.2 * 0.01)CDec 函数此示例使用CDec函数将数值转换为Decimal值。
Dim MyDecimal, MyCurrMyCurr = 10000000.0587 ' MyCurr 是 Currency 数据类型值。
MyDecimal = CDec(MyCurr) ' MyDecimal 是 Decimal 数据类型值。
CInt 函数此示例使用CInt函数将值转换为Integer值。
Dim MyDouble, MyIntMyDouble = 2345.5678 ' MyDouble 是 Double 数据类型值。
MyInt = CInt(MyDouble) ' MyInt 包含 2346。
CLng 函数此示例使用CLng函数将值转换为Long值。
Dim MyVal1, MyVal2, MyLong1, MyLong2MyVal1 = 25427.45MyVal2 = 25427.55 ' MyVal1、MyVal2 是 Double 数据类型值。
MyLong1 = CLng(MyVal1)' MyLong1 包含 25427。
MyLong2 = CLng(MyVal2)' MyLong2 包含 25428。
CSng 函数此示例使用CSng函数将值转换为Single值。
Dim MyDouble1, MyDouble2, MySingle1, MySingle2' MyDouble1、MyDouble2 是 Double 数据类型值。
MyDouble1 = 75.3421115: MyDouble2 = 75.3421555MySingle1 = CSng(MyDouble1)' MySingle1 包含 75.34211。
MySingle2 = CSng(MyDouble2)' MySingle2 包含 75.34216。
CStr 函数此示例使用CStr函数将数值转换为String值。
Dim MyDouble, MyStringMyDouble = 437.324 ' MyDouble 是 Double 数据类型值。
MyString = CStr(MyDouble)' MyString 包含 "437.324"。
CVar 函数此示例使用CVar函数将表达式转换为Variant值。
Dim MyInt, MyVarMyInt = 4534 ' MyInt 是 Integer 数据类型值。
MyVar = CVar(MyInt & "000")' MyVar c包含字符串 4534000。