vba中数据类型转换Word版.docx
《vba中数据类型转换Word版.docx》由会员分享,可在线阅读,更多相关《vba中数据类型转换Word版.docx(7页珍藏版)》请在冰点文库上搜索。
vba中数据类型转换Word版
类型转换函数
请参阅 示例 特性
每个函数都可以强制将一个表达式转换成某种特定数据类型。
语法
CBool(expression)
CByte(expression)
CCur(expression)
CDate(expression)
CDbl(expression)
CDec(expression)
CInt(expression)
CLng(expression)
CLngLng(expression)(只在64位平台上有效。
)
CLngPtr(expression)
CSng(expression)
CStr(expression)
CVar(expression)
CStr(expression)
必要的expression参数可以是任何字符串表达式或数值表达式。
返回类型
函数名称决定返回类型,如下所示:
函数
返回类型
expression参数范围
CBool
Boolean
任何有效的字符串或数值表达式。
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,小数部分四舍五入。
CLngLng
LongLong
-9,223,372,036,854,775,808到9,223,372,036,854,775,807;小数部分四舍五入。
(只在64位平台上有效。
)
CLngPtr
LongPtr
在32位系统上,为-2,147,483,648到2,147,483,647;在64位系统上,为-9,223,372,036,854,775,808到9,223,372,036,854,775,807;对于32位和64位系统,小数部分四舍五入。
CSng
Single
负数为-3.402823E38至-1.401298E-45;正数为1.401298E-45至3.402823E38。
CStr
String
依据expression参数返回Cstr。
CVar
Variant
若为数值,则范围与Double相同;若不为数值,则范围与String相同。
说明
如果传递给函数的expression超过转换目标数据类型的范围,将发生错误。
通常,在编码时可以使用数据类型转换函数,来体现某些操作的结果应该表示为特定的数据类型,而不是缺省的数据类型。
例如,当单精度、双精度或整数运算发生的情况下,使用CCur来强制执行货币运算。
应该使用数据类型转换函数来代替Val,以使国际版的数据转换可以从一种数据类型转换为另一种。
例如,当使用Ccur时,不同的小数点分隔符、千分位分隔符和各种货币选项,依据系统的区域设置都会被妥善识别。
当小数部分恰好为0.5时,Cint和CLng函数会将它转换为最接近的偶数值。
例如,0.5转换为0、1.5转换为2。
Cint和CLng函数不同于Fix和Int函数,Fix和Int函数会将小数部分截断而不是四舍五入。
并且Fix和Int函数总是返回与传入的数据类型相同的值。
使用IsDate函数,可判断date是否可以被转换为日期或时间。
Cdate可用来识别日期文字和时间文字,以及落入可接受的日期范围内的数值。
当转换一个数字成为日期时,是将整数部分转换为日期,小数部分转换为从午夜起算的时间。
CDate依据系统上的区域设置来决定日期的格式。
如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。
另外,长日期格式,若包含有星期的字符串,也不能被识别。
注意CDec函数不能返回独立的数据类型,而总是返回一个Variant,它的值已经被转换为Decimal子类型。
CBool函数示例
此示例使用CBool函数将表达式转换为Boolean。
如果表达式的值不为零,则CBool返回True;否则,返回False。
DimA,B,Check
A=5:
B=5'初始化变量。
Check=CBool(A=B)'Check包含True。
A=0'定义变量。
Check=CBool(A)'Check包含False。
CByte函数示例
此示例使用CByte函数将表达式转换为Byte。
DimMyDouble,MyByte
MyDouble=125.5678'MyDouble为Double。
MyByte=CByte(MyDouble)'MyByte包含126。
CCur函数示例
此示例使用CCur函数将表达式转换为Currency。
DimMyDouble,MyCurr
MyDouble=543.214588'MyDouble为Double。
MyCurr=CCur(MyDouble*2)'将MyDouble*2的结果
'(1086.429176)转换为
'Currency(1086.4292)。
CDate函数示例
此示例使用CDate函数将字符串转换为Date。
通常,建议不要将日期和时间硬编码为字符串(如此示例中所示)。
请改为使用日期文字和时间文字,如#2/12/1969#和#4:
45:
23PM#。
DimMyDate,MyShortDate,MyTime,MyShortTime
MyDate="February12,1969"'定义日期。
MyShortDate=CDate(MyDate)'转换为Date数据类型。
MyTime="4:
35:
47PM"'定义时间。
MyShortTime=CDate(MyTime)'转换为Date数据类型。
CDbl函数示例
此示例使用CDbl函数将表达式转换为Double。
DimMyCurr,MyDouble
MyCurr=CCur(234.456784)'MyCurr为Currency。
MyDouble=CDbl(MyCurr*8.2*0.01)'转换结果为Double。
CDec函数示例
此示例使用CDec函数将数字值转换为Decimal。
DimMyDecimal,MyCurr
MyCurr=10000000.0587'MyCurr为Currency。
MyDecimal=CDec(MyCurr)'MyDecimal为Decimal。
CInt函数示例
此示例使用CInt函数将值转换为Integer。
DimMyDouble,MyInt
MyDouble=2345.5678'MyDouble为Double。
MyInt=CInt(MyDouble)'MyInt包含2346。
CLng函数示例
此示例使用CLng函数将值转换为Long。
DimMyVal1,MyVal2,MyLong1,MyLong2
MyVal1=25427.45:
MyVal2=25427.55'MyVal1、MyVal2为Double。
MyLong1=CLng(MyVal1)'MyLong1包含25427。
MyLong2=CLng(MyVal2)'MyLong2包含25428。
CSng函数示例
此示例使用CSng函数将值转换为Single。
DimMyDouble1,MyDouble2,MySingle1,MySingle2
'MyDouble1、MyDouble2为Double。
MyDouble1=75.3421115:
MyDouble2=75.3421555
MySingle1=CSng(MyDouble1)'MySingle1包含75.34211。
MySingle2=CSng(MyDouble2)'MySingle2包含75.34216。
CStr函数示例
此示例使用CStr函数将数字值转换为String。
DimMyDouble,MyString
MyDouble=437.324'MyDouble为Double。
MyString=CStr(MyDouble)'MyString包含"437.324"。
CVar函数示例
此示例使用CVar函数将表达式转换为Variant。
DimMyInt,MyVar
MyInt=4534'MyInt为Integer。
MyVar=CVar(MyInt&"000")'MyVar包含字符串
'4534000.
(注:
可编辑下载,若有不当之处,请指正,谢谢!
)