vba中数据类型转换

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

类型转换函数

请参阅示例特性

每个函数都可以强制将一个表达式转换成某种特定数据类型。语法

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 Byte0 至 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。

Dim A, B, Check

A = 5:

B = 5 ' 初始化变量。

Check = CBool(A = B) ' Check 包含 True。

A = 0 ' 定义变量。

Check = CBool(A) ' Check 包含 False。

CByte 函数示例

此示例使用CByte函数将表达式转换为Byte。

Dim MyDouble, MyByte

MyDouble = 125.5678 ' MyDouble 为 Double。

MyByte = CByte(MyDouble) ' MyByte 包含 126。

CCur 函数示例

此示例使用CCur函数将表达式转换为Currency。

Dim MyDouble, 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:23 PM#。

Dim MyDate, MyShortDate, MyTime, MyShortTime

MyDate = "February 12, 1969" ' 定义日期。MyShortDate = CDate(MyDate) ' 转换为 Date 数据类型。

相关文档
最新文档