Abs
Activate
Asc
Atn
CBool
CByte
CCur
CDate
CDbl
CDec
Change
Chr
CInt
Click
CLng
Cos
CSng
CStr
CurDir
CVar
CVErr
Date
DateAdd
DateDiff
DateSerial
DateValue
Day
DblClick
Deactivate
Dir
DragDrop
DragOver
EOF
Error(ADO
Error(Data
Error(DataGrid
Error(数据报表设计器)
Exp
FileAttr
FileDateTime
FileLen
Fix
Format
Format
FreeFile
GetAttr
GotFocus
GotFocus
=======
【名称】
Abs
【类别】
数学函数
【原形】
Abs(number)
【参数】
必选的。Number参数是一个任何有效的数值型表达式
【返回值】
同 number 的类型
【异常/错误】
无
【描述】
返回参数number 的绝对值。一个数的绝对值是将正负号去掉以后的值。例如,ABS(-1) 和 ABS(1) 都返回 1。Abs(5.2)=5.2,Abs(-5)=5
【示例】
Dim MyNumber
MyNumber = Abs(50.3) ' 返回 50.3。
MyNumber = Abs(-50.3) ' 返回 50.3。
【备注】
如果 number 包含 Null,则返回 Null,如果 number 是未初始化的变量,则返回 0。
=======
【名称】
Activate
【类别】
事件过程
【原形】
Private Sub object_Activate( )
【参数】
object 所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。
【描述】
Activate -当一个对象成为活动窗口时发生。
【示例】
本例通过更新状态栏文本来显示活动窗体的标题。要尝试这个例子,先建立一个 Form 对象 (Form1) 及一个新的 MDIForm 对象 (MDIForm1)。在 MDIForm1 上,绘出一个带有 Label 控件的 PictureBox 控件。在 Form1 上,将 MDIChild 属性设为 True。将 MDIForm_Load 事件过程代码粘贴到 MDIForm 对象的声明部分。将 Form_Activate 事件过程代码粘贴到 MDI 子窗体的声明部分,然后按下 F5 键。
Private Sub MDIForm_Load ()
Form1.Caption = "Form #1" '设置 Form1 的标题。
Dim NewForm As New Form1 '创建一个新的子窗体。
Load NewForm
NewForm.Caption = "Form #2" ' 设置新窗体的标题。
NewForm.Show ' 显示新窗体。
End Sub
Private Sub Form_Activate ()
' 设置状态栏文本。
MDIForm1.Label1.Caption = "Current form: " & Me.Caption
End Sub
【备注】
一个对象可以通过诸如单击它,或使用代码中的 Show 或 SetFocus 方法之类的用户操作而变成活动的。
Activate 事件仅当一个对象可见时才发生。例如,除非使用 Show 方法或将窗体的 Visible 属性设置为 True,否则,一个用 Load 语句加载的窗体是不可见的。
Activate 和 Deactivate 事件仅当焦点在一个应用程序内移动时才发生。在另一个应用程序中将焦点移向或移离一个对象时,不会触发任何一个事件。当一个对象卸载时,不会发生 Deactivate 事件。
Activate 事件在 GotFocus 事件之前发生,LostFocus 事件在 Deactivate 事件之前发生。
对 MDI 子窗体来说,这些事件仅当焦点从一个子窗体改变到另一个子窗体时才会发生。例如,在一个带有两个子窗体的 MDIForm 对象中,当焦点在子窗体之间移动时,它们能接收这些事件。然而,当焦点在一个 MDI 子窗体和一个非 MDI 子窗体之间移动时,父 MDIForm 将接收 Activate 和 Deactivate 事件。
如果一个由 Visual Basic 建立的 .exe 文件显示一个对话框,此对话框也是由建立在 Visual Basic 中的一个 .dll 文件所创建的,那么.exe 文件的窗体将获得 Deactivate 和 LostFocus 事件。这可能是不期望的,因为下列情况下不应获得 Deactivate 事件:
如果对象是一个过程之外的部件。
如果对象不是用 Visual Basic 编写的。
在开发环境中调用一个 Visual Basic 建立中的 DLL 时。
当一个对象(此处是窗体)被激活(窗体可见,为活动窗口)时,就会产生Activate事件。当一个对象不再是活动窗体时发生Deactivate事件。只有当对象为可见的时,才能产生Activate事件。运行该窗体程序、使用Show(显示)、 SetFocus(设置焦点)方法,单击一个对象,将对象的Visible属性设置为True等时,可激活窗体,使窗体成为活动窗口。用 Load 语句加载的窗体是不可见的。
当焦点在一个应用程序内移动时,会产生Activate 和 Deactivate 事件。在另一个应用程序中将焦点移入或移出一个对象时,不会触发任何一个事件。当一个对象卸载时,不会发生 Deactivate 事件。
Activate 事件在 GotFocus 事件之前发生,LostFocus 事件在 Deactivate 事件之前发生。
对 MDI 子窗体来说,这些事件仅当焦点从一个MDI子窗体改变到另一个MDI子窗体时才会发生。例如,在一个带有两个MDI子窗体的 MDI窗体中,当焦点在子窗体之间移动时,它们能接收这些事件。然而,当焦点在一个 MDI 子窗体和一个非 MDI 子窗体之间移动时,MDIForm 将接收 Activate 和 Deactivate 事件。
=======
【名称】
Asc
【类别】
转换函数
【原形】
Asc(string)
【参数】
必选的, string 参数可以是任何有效的字符串表达式。如果 string 中没有包含任何字符,则会产生运行时错误。
【返回值】
返回一个 Integer
【异常/错误】
无
【描述】
在非 DBCS 系统下,返回值范围为 0 – 255 。在 DBCS 系统下,则为 -32768 – 32767。
注意: AscB 函数作用于包含在字符串中的字节数据,AscB 返回第一个字节的字符代码,而非字符的字符代码。AscW 函数返回 Unicode 字符代码,若平台不支持 Unicode,则与 Asc 函数功能相同。
【示例】
本示例使用 Asc 函数返回字符串首字母的字符值(ASCII 值)。
Dim MyNumber
MyNumber = Asc("A") ' 返回 65。
MyNumber = Asc("a") ' 返回 97。
【备注】
=======
【名称】
Atn
【类别】
数学函数
【原形】
Atn(number)
【参数】
必选的,number 参数是一个 Double或任何有效的数值表达式。
【返回值】
Double类型
【异常/错误】
无
【描述】
返回参数number 的反正切值。
【示例】
Dim pi
pi = 4 * Atn(1) ' 计算圆周率。
【备注】
Atn 函数的参数值 (number) 为直角三角形两边的比值并返回以弧度为单位的角。这个比值是角的对边长度除以角的邻边长度之商。值的范围在 -pi/2 和 pi/2 弧度之间。为了将角度转换为弧度,请将角度乘以 pi/180。为了将弧度转换为角度,请将弧度乘以 180/pi。
注意:Atn 是 Tan 的反三角函数,Tan 的参数值为角度,返回直角三角形的两条边的比值。不要将 Atn 和余切函数混淆,余切函数值是正切函数值的倒数,cotangent = (1/tangent)。
=======
【名称】
CBool
【类别】
转换函数
【原形】
CBool(expression)
【参数】
必选的,expression 参数可以是一个任何字符串表达式或数值表达式。
【返回值】
返回一个 Boolean。
【异常/错误】
无
【描述】
强制将一个表达式转换成Boolean特定数据类型。
【示例】
本示例使用 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。
【备注】
函数名称决定返回类型,如下所示。
函数
返回类型
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.79769313486232E308 至 -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
依据 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 依据系统上的国别设置来决定日期的格式。如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。另外,长日期格式,若包含有星期的字符串,也不能被识别。
CVDate 函数也提供对早期 Visual Basic 版本的兼容性。CVDate 函数的语法与 CDate 函数是完全相同的,不过,CVDate 是返回一个 Variant,它的子类型是 Date,而不是实际的 Date 类型。因为现在已有真正的 Date 类型,所以 CVDate 也不再需要了。转换一个表达式成为 Date,再赋值给一个 Variant,也可以达到同样的效果。也可以使用这种技巧将其他真正的数据类型转换为对等的 Variant 子类型。
注意 CDec 函数不能返回独立的数据类型,而总是返回一个 Variant,它的值已经被转换为 Decimal 子类型。
=======
【名称】
CByte
【类别】
转换函数
【原形】
CByte(expression)
【参数】
必选的,expression 参数可以是一个数值表达式。其值为0 至 255之间的数。
【返回值】
返回一个 Byte。
【异常/错误】
无
【描述】
强制将一个表达式转换成Byte特定数据类型。
【示例】
本示例使用 CByte 函数将一表达式转成 Byte。
Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble 为Double(双精度)。
MyByte = CByte(MyDouble) ' MyByte 值为 126。
【备注】
函数名称决定返回类型,如下所示。
函数
返回类型
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.79769313486232E308 至 -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
依据 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 依据系统上的国别设置来决定日期的格式。如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。另外,长日期格式,若包含有星期的字符串,也不能被识别。
CVDate 函数也提供对早期 Visual Basic 版本的兼容性。CVDate 函数的语法与 CDate 函数是完全相同的,不过,CVDate 是返回一个 Variant,它的子类型是 Date,而不是实际的 Date 类型。因为现在已有真正的 Date 类型,所以 CVDate 也不再需要了。转换一个表达式成为 Date,再赋值给一个 Variant,也可以达到同样的效果。也可以使用这种技巧将其他真正的数据类型转换为对等的 Variant 子类型。
注意 CDec 函数不能返回独立的数据类型,而总是返回一个 Variant,它的值已经被转换为 Decimal 子类型。
=======
【名称】
CCur
【类别】
转换函数
【原形】
CCur(expression)
【参数】
必选的,expression 参数可以是一个数值表达式。其值为-922,337,203,685,477.5808 至922,337,203,685,477.5807之间的数。
【返回值】
返回一个 Currency。
【异常/错误】
无
【描述】
强制将一个表达式转换成Currency特定数据类型。
【示例】
本示例使用 CCur 函数将表达式转成 Currency。
Dim MyDouble, MyCurr
MyDouble = 543.214588 ' MyDouble 为 Double 类型。
MyCurr = CCur(MyDouble * 2) ' 将 MyDouble * 2 的结果
' (1086.429176)转换为 Currency (1086.4292)。
【备注】
函数名称决定返回类型,如下所示。
函数
返回类型
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.79769313486232E308 至 -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
依据 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 依据系统上的国别设置来决定日期的格式。如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。另外,长日期格式,若包含有星期的字符串,也不能被识别。
CVDate 函数也提供对早期 Visual Basic 版本的兼容性。CVDate 函数的语法与 CDate 函数是完全相同的,不过,CVDate 是返回一个 Variant,它的子类型是 Date,而不是实际的 Date 类型。因为现在已有真正的 Date 类型,所以 CVDate 也不再需要了。转换一个表达式成为 Date,再赋值给一个 Variant,也可以达到同样的效果。也可以使用这种技巧将其他真正的数据类型转换为对等的 Variant 子类型。
注意 CDec 函数不能返回独立的数据类型,而总是返回一个 Variant,它的值已经被转换为 Decimal 子类型。
=======
【名称】
CDate
【类别】
转换函数
【原形】
CDate(expression)
【参数】
必选的,expression 参数可以是一个任何有效的日期表达式。
【返回值】
返回一个Date。
【异常/错误】
无
【描述】
强制将一个表达式转换成Date特定数据类型。
【示例】
本示例使用 CDate 函数将字符串转换成 Date。一般说来,字符串格式的日期与时间硬编码(如示例中所示)并不好。较好的做法是使用日期原义表达式和时间的原义表达式(如 #2/12/1969#,#4:45:23 PM#)。
Dim MyDate, MyShortDate, MyTime, MyShortTime
MyDate = "February 12, 1969" ' 定义日期。
MyShortDate = CDate(MyDate) ' 转换为 Date 数据类型。
MyTime = "4:35:47 PM" ' 定义时间。
MyShortTime = CDate(MyTime) ' 转换为 Date 数据类型。
【备注】
函数名称决定返回类型,如下所示。
函数
返回类型
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.79769313486232E308 至 -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
依据 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 依据系统上的国别设置来决定日期的格式。如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。另外,长日期格式,若包含有星期的字符串,也不能被识别。
CVDate 函数也提供对早期 Visual Basic 版本的兼容性。CVDate 函数的语法与 CDate 函数是完全相同的,不过,CVDate 是返回一个 Variant,它的子类型是 Date,而不是实际的 Date 类型。因为现在已有真正的 Date 类型,所以 CVDate 也不再需要了。转换一个表达式成为 Date,再赋值给一个 Variant,也可以达到同样的效果。也可以使用这种技巧将其他真正的数据类型转换为对等的 Variant 子类型。
注意 CDec 函数不能返回独立的数据类型,而总是返回一个 Variant,它的值已经被转换为 Decimal 子类型。
=======
【名称】
CDbl
【类别】
转换函数
【原形】
CDbl(expression)
【参数】
必选的,expression 参数可以是一个任何有效的数值型表达式。负数从 -1.79769313486232E308 至 -4.94065645841247E-324;正数从 4.94065645841247E-324 至 1.79769313486232E308。
【返回值】
返回一个Double。
【异常/错误】
无
【描述】
强制将一个表达式转换成Double 特定数据类型。
【示例】
本示例使用 CDbl 函数将表达式转换为 Double 类型。
Dim MyCurr, MyDouble
MyCurr = CCur(234.456784) ' MyCurr 为 Currency 类型。
MyDouble = CDbl(MyCurr * 8.2 * 0.01) ' 将结果转换为 Double 类型。
【备注】
函数名称决定返回类型,如下所示。
函数
返回类型
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.79769313486232E308 至 -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
依据 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 依据系统上的国别设置来决定日期的格式。如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。另外,长日期格式,若包含有星期的字符串,也不能被识别。
CVDate 函数也提供对早期 Visual Basic 版本的兼容性。CVDate 函数的语法与 CDate 函数是完全相同的,不过,CVDate 是返回一个 Variant,它的子类型是 Date,而不是实际的 Date 类型。因为现在已有真正的 Date 类型,所以 CVDate 也不再需要了。转换一个表达式成为 Date,再赋值给一个 Variant,也可以达到同样的效果。也可以使用这种技巧将其他真正的数据类型转换为对等的 Variant 子类型。
注意 CDec 函数不能返回独立的数据类型,而总是返回一个 Variant,它的值已经被转换为 Decimal 子类型。
=======
【名称】
CDec
【类别】
转换函数
【原形】
CDec(expression)
【参数】
必选的,expression 参数可以是一个任何有效的数值型表达式。零变比数值,即无小数位数值,为 +/-79,228,162,514,264,337,593,543,950,335。对于 28 位小数的数值,范围则为 +/-7.9228162514264337593543950335;最小的可能非零值是 0.0000000000000000000000000001。
【返回值】
返回一个Decimal。
【异常/错误】
无
【描述】
强制将一个表达式转换成Decimal特定数据类型。
【示例】
该示例使用 CDec 函数将数字值转换为 Decimal。
Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr 是货币。
MyDecimal = CDec(MyCurr) ' MyDecimal 是二进制数。
【备注】
函数名称决定返回类型,如下所示。
函数
返回类型
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.79769313486232E308 至 -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
依据 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 依据系统上的国别设置来决定日期的格式。如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。另外,长日期格式,若包含有星期的字符串,也不能被识别。
CVDate 函数也提供对早期 Visual Basic 版本的兼容性。CVDate 函数的语法与 CDate 函数是完全相同的,不过,CVDate 是返回一个 Variant,它的子类型是 Date,而不是实际的 Date 类型。因为现在已有真正的 Date 类型,所以 CVDate 也不再需要了。转换一个表达式成为 Date,再赋值给一个 Variant,也可以达到同样的效果。也可以使用这种技巧将其他真正的数据类型转换为对等的 Variant 子类型。
注意 CDec 函数不能返回独立的数据类型,而总是返回一个 Variant,它的值已经被转换为 Decimal 子类型。
=======
【名称】
Change
【类别】
事件过程
【原形】
Private Sub object_Change([index As Integer])
【参数】
Change 事件参数包括下列部分:
部分
【描述】
object
一个对象表达式,其值是“应用于”列表中的一个对象。
index
一个整数,用来唯一地标识一个在控件数组中控件。
【描述】
指示一个控件的内容已经改变的。此事件如何和何时发生则随控件的不同而不同:
ComboBox - 改变控件的文本框部分的正文。该事件仅在 Style 属性设置为 0(下拉 Combo)或 1(简单 Combo)和正文被改变或者通过代码改变了 Text 属性的设置时才会发生。
DirListBox - 改变所选择的目录。该事件在双击一个新的目录或通过代码改变 Path 属性的设置时发生。
DriveListBox - 改变所选择的驱动器。该事件当选择一个新的驱动器或通过代码改变 Drive 属性的设置时发生。
HScrollBar 和 VScrollBar(水平和垂直滚动条) - 移动滚动条的滚动框部分。该事件在进行滚动或通过代码改变 Value 属性的设置时发生。
Label - 改变 Label 的内容。该事件在一个 DDE 链接更新数据或通过代码改变 Caption 属性的设置时发生。
PictureBox - 改变 PictureBox 的内容。该事件当一个 DDE 链接更新数据或通过代码改变 Picture 属性的设置时发生。
TextBox - 改变文本框的内容。该事件当一个 DDE 链接更新数据、用户改变正文或通过代码改变 Text 属性的设置时发生。
【示例】
本例在 TextBox 控件中显示水平滚动条的 Value 属性的数值。要尝试这个例子,需创建一个带有 TextBox 控件及 HScrollBar 控件的窗体,然后将码粘贴到一个带有水平滚动条 (HScrollBar 控件) 和 TextBox 控件的窗体的声明部分。按 F5 键并单击水平滚动条。
Private Sub Form_Load ()
HScroll1.Min = 0 ' 设置最小值。
HScroll1.Max = 1000 ' 设置最大值。
HScroll1.LargeChange = 100 ' 设置 LargeChange.
HScroll1.SmallChange = 1 ' 设置SmallChange.
End Sub
Private Sub HScroll1_Change ()
Text1.Text = HScroll1.Value
End Sub
【备注】
Change 事件过程可协调在各控件间显示的数据或使它们同步。例如,可用一个滚动条的 Change 事件过程更新一个 TextBox 控件中滚动条的 Value 属性的设置。或者可以利用 Change 事件过程在一个工作区里显示数据和公式,在另一个区域里显示结果。
Change 事件过程在更新系统控件(DirListBox,DriveListBox 和 FileListBox)中的各属性时也是有用的。例如,可更新一个 DirListBox 控件的 Path 属性设置来反映一个 DriveListBox 控件的 Drive 属性设置的改变。
注意:一个 Change 事件过程有时会导致一个层叠事件。这种情况在控件的 Change 事件过程改变该控件的内容时会发生,例如,通过用代码设置一个决定该控件的值的属性,如对一个 TextBox 控件的 Text 属性之类的设置。为了避免层叠事件:
如果可能,应避免为控件编写能改变该控件内容的 Change 事件过程。如果编写了那样的过程,应确保设置一个标志用来防止在当前变化进行中更进一步的变化。
避免创建两个或两个以上其 Change 事件过程互相影响的控件。例如,两个 TextBox 控件在它们的 Change 事件期间互相更新。
避免对 HScrollBar 和 VScrollBar 控件在 Change 事件中使用 MsgBox 函数或语句。
=======
【名称】
Chr
【类别】
字符串函数
【原形】
Chr(charcode)
字符串函数的函数名后面可以加$符号。
【参数】
必选的,charcode参数是一个用来识别某字符的 Long任何有效的数值型表达式。
【返回值】
返回String数据类型。
【异常/错误】
无
【描述】
返回以charcode参数为ASCII码的字符,例如:Chr(65)=“A”。
【示例】
本示例使用 Chr 函数来返回指定字符码所代表的字符。
Dim MyChar
MyChar = Chr(65) ' 返回 A。
MyChar = Chr(97) ' 返回 a。
MyChar = Chr(62) ' 返回 >。
MyChar = Chr(37) ' 返回 %。
【备注】
0 到 31 之间的数字与标准的非打印 ASCII 代码相同。例如,Chr(10) 可以返回换行字符。charcode 的正常范围为 0 – 255。然而,在 DBCS 系统,charcode 的实际范围为 -32768 到 65535。
注意:ChrB 函数作用于包含在 String 中的字节数据。ChrB 总是返回一个单字节,而不是返回一个字符,一个字符可能是一个或两个字节。ChrW 函数返回包含 Unicode 的 String,若在不支持 Unicode 的平台上,则其功能与 Chr 函数相同。
函数值类型和函数功能如下表所示。
字符串函数
函数名
函数值类型
功能
举例
Chr$(N)
String
求以N为ASCII码的字符
Chr(65)=“A”
Str$(N)
String
将N转换为字符串,如果N>0,则返回的字符串中包含一个前导空格,暗示有一个正号
Str$(-12345)=“-12345”
Str(12345)= “ 12345”
Len(C)
Long
求字符串C中包含的字符个数
Len(“Abab字符串4")=8
Ucase$(C)
String
将字符串C中的小写英文字母转换成大写英文字母
Ucase(“abABabc")="ABABABC"
Lcase$(C)
String
将字符串C中的大写英文字母转换成小写英文字母
Ucase(“abABabc")="abababc"
Space$(N)
String
产生N个空格组成的字符串
Len(Space(6))=6
String$(N,C)
String
产生N个由C指定的第一个字符组成的字符串,C可以是ASCII码数
String(6,”ABC”)=“AAAAAA”
String(6,65)=“AAAAAA”
Left(C,N)
String
从字符串C的最左边开始,截取N个字符
Left$(“ABCDEF",3)="ABC”
Right$(C,N)
String
从字符串C的最右边开始,截取N个字符
Right$ (“ABCDEF",3)="DEF”
Mid$(C,N1 [,N2 ])
String
从字符串C中N1指定的起始位置处开始,截取N2个字符
Mid(“ABCDEF”,2,3)=”BCD”
Mid(“ABCDEF”,2)=”BCDEF”
Ltrim$(C)
String
删除字符串C中的前导空格
Ltrim(“ ABCD ”)="ABCD ”
Rtrim$(C)
String
删除字符串C中的尾部空格
Ltrim(“ ABCD ”)=" ABCD”
Trim$(C)
String
删除字符串参数中的前导和尾部空格
Ltrim(“ ABCD ”)="ABCD”
StrComp(C1,C2[,N])
Integer
比较字符串C1和字符串C2的大小,N是比较类型,取值0、1或2
StrComp(“ABC",”abc",1)=0
StrComp(“ABC",”abc",0)=-1
StrComp(“abc ",” ABC ",0)=1
InStr([N1,]C1,C2[,N2])
Integer
在字符串C1中,从N1开始到N2位置,开始找C2,省略N1时从C1头开始找,省略N2时找到C1尾止。找不到时,函数值为0
InStr(2,”ABCDE”,”C”,4)=3
InStr(2,”ABCDEF”,”CDE”)=3
InStr(”ABCDEFGH”,”CDE”)=3
InStr(”ABCDEFGH”,”XY”)=0
说明:(1)表中的C表示是字符串表达式,表中的N表示是数值表达式
(2)对于数值函数Val(C),逗号“,”和美圆符号“$”,都不能被识别;空格、制表符和换行符都将从参数中去掉;当遇到字母E或D 时,将其按单精度或双精度实型浮点数处理。
(3)LenB(C)函数与Len(C)函数功能相近,只不过LenB函数求的是字符串的字节数,而不是字符串中字符的个数。例如:LenB(“ABCabc123")=18,LenB(“字符串”)=6。
(4)对于产生字符串函数String$(N,C),其中,C参数可以为任何有效的数值表达式或字符串表达式,如果为数值表达式,则表示组成字符串的字符的ASCII码;如果为字符串表达式,则其第一个字符将用于产生字符串。
(5)对于字符串左截函数Left(C,N),N参数为数值表达式,其值指出函数值中包含多少个字符,如果其值为0,则函数值是长度为零的字符串(即空串);如果其值大于或等于字符串C中的字符数,则函数值为整个字符串。
LeftB函数与Left函数功能相近,只不过LeftB函数求的是字符串的字节数,而不是字符串中字符的个数。LeftB(“ABCDE”,6)=”ABC”。
(6) 对于字符串右截取函数Right(C,N),N参数为数值表达式,其值指出函数值中包含多少个字符。如果其值为0,则函数值为空串;如果其值大于或等于字符串C中的字符个数,则函数值为整个字符串。
RightB函数与Right函数功能相近,只不过RightB函数求的是字符串的字节数,而不是字符串中字符的个数。RightB(“ABCDE”,6)=”CDE”。
(7)N1是数值表达式,其值表示开始截取字符的起始位置。如果该数值超过字符串C中的字符数,则函数值为空串。N2是数值表达式,其值表示要截取的字符数。如果省略该参数,则函数值将包含字符串C中从起始位置到字符串末尾的所有字符。
MidB函数与Mid函数功能相近,只不过MidB函数求的是字符串的字节数,而不是字符串中字符的个数。例如:MidB(“ABCDEFG”,5,8)=”CDEF”。
(8)因为将一字符串赋值给一定长字符串变量时,如字符串变量的长度大于字符串的长度,则用空格填充该字符串变量尾部多余的部分,所以在处理定长字符串变量时,删除空格的Ltrim和Rtrim函数是非常有用的。
(9)对于字符串比较函数StrComp(C1,C2[,N] ),N是指定字符串的比较类型。比较类型可以是0、1或2,若比较类型为0,则执行二进制比较,此时英文字母区分大小写;若比较类型为1,则执行文本比较,此时英文字母不区分大小写;若比较类型为2,则是执行基于数据库信息的比较,仅对Microsoft Access起作用。若省略该参数,则默认比较类型为0。
当字符串C1小于字符串C2时,函数值为—1;当字符串C1等于字符串C2时,函数值为0:当字符串C1大于字符串C2时,函数值为1。
=======
【名称】
CInt
【类别】
转换函数
【原形】
CInt(expression)
【参数】
必选的,expression 参数可以是一个任何有效的数值型表达式。其值为-32,768 至 32,767,小数部分四舍五入。
【返回值】
返回一个Integer。
【异常/错误】
无
【描述】
强制将一个表达式转换成Integer特定数据类型。
【示例】
本示例使用 CInt 函数将一数值转换为 Integer。
Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble 为 Double 类型。
MyInt = CInt(MyDouble) ' MyInt 的值为 2346。
【备注】
函数名称决定返回类型,如下所示。
函数
返回类型
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.79769313486232E308 至 -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
依据 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 依据系统上的国别设置来决定日期的格式。如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。另外,长日期格式,若包含有星期的字符串,也不能被识别。
CVDate 函数也提供对早期 Visual Basic 版本的兼容性。CVDate 函数的语法与 CDate 函数是完全相同的,不过,CVDate 是返回一个 Variant,它的子类型是 Date,而不是实际的 Date 类型。因为现在已有真正的 Date 类型,所以 CVDate 也不再需要了。转换一个表达式成为 Date,再赋值给一个 Variant,也可以达到同样的效果。也可以使用这种技巧将其他真正的数据类型转换为对等的 Variant 子类型。
注意 CDec 函数不能返回独立的数据类型,而总是返回一个 Variant,它的值已经被转换为 Decimal 子类型。
=======
【名称】
Click
【类别】
事件过程
【原形】
Private Sub Form_Click( )
Private Sub object_Click([index As Integer])
【参数】
Click 事件的参数包括下列部分:
部分
【描述】
object
一个对象表达式,其值是“应用于”列表中的一个对象。
index
一个整数,用来唯一地标识一个在控件数组中的控件。
【描述】
当用户在窗体上按一下鼠标按钮时,就会产生Click事件。单击窗体内某个控件对象,则该窗体不会产生Click事件。
此事件是在一个对象上按下然后释放一个鼠标按钮时发生。它也会发生在一个控件的值改变时。对一个 Form 对象来说,该事件是在单击一个空白区或一个无效控件时发生。对一个控件来说,这类事件的发生是当:
用鼠标的左键或右键单击一个控件。对 CheckBox, CommandButton, Listbox 或 OptionButton 控件来说,Click 事件仅当单击鼠标左键时发生。
通过按下箭头键或者单击鼠标按钮,对 ComboBox 或 ListBox 控件中的项目进行选择。当 CommandButton,OptionButton 或 CheckBox 控件具有焦点时,按下 SPACEBAR 键。
当窗体带有其 Default 属性设置为 True 的 CommandButton 控件时,按下 ENTER 键。当窗体带有一个 Cancel 按钮 — 其 Cancel 属性设置为 True 的 CommandButton 控件时,按下 ESC 键。
对控件按下一个访问键。例如,如果一个 CommandButton 控件的标题是 "&Go",则按下 ALT+G 键可触发该事件。 也可在代码中触发 Click 事件,通过:
将一个 CommandButton 控件的 Value 属性设置为 True。
将一个 OptionButton 控件的 Value 属性设置为 True。
改变一个 CheckBox 控件的 Value 属性的设置。
【示例】
在本例中,每单击一次 PictureBox 控件时,它都沿对角线方向在窗体中移动。要尝试这个例子,先将代码粘贴到窗体的声明部分,该窗体的左下角处有一个 PictureBox 控件,然后按 F5 键并单击 PictureBox。
Private Sub Picture1_Click ()
Picture1.Move Picture1.Left + 750, Picture1.Top - 550
End Sub
【备注】
通常,将一个 Click 事件过程附加到一个 CommandButton 控件,Menu 对象或 PictureBox 控件上用来执行命令或类似命令的操作。对其它可应用的控件来说,使用这个事件来触发一个动作以响应控件中的变化。
可用一个控件的 Value 属性从代码中测试该控件的状态。单击一个控件除了产生 Click 事件以外还可产生 MouseDown 和 MouseUp 事件。这三种事件发生的顺序根据控件的不同而不同。例如,对 ListBox 和 CommandButton 控件来说,这些事件按下列顺序发生:MouseDown、Click、MouseUp。但对 FileListBox,Label 或 PictureBox 控件来说,这些事件按下列顺序发生:MouseDown、MouseUp 和 Click。当给这些相关的事件附加事件过程时,要确保它们的操作不互相冲突。如果在应用程序中事件发生的顺序是重要的,则应对控件进行测试以确定事件的顺序。
注意:为区别鼠标的左、中、右按钮,应使用 MouseDown 和 MouseUp 事件。
如果在 Click 事件中有代码,则 DlbClick 事件将永远不会被触发,因为 Click 事件是两个事件中首先被触发的事件。其结果是鼠标单击被 Click 事件截断,从而使 DblClick 事件不会发生。
=======
【名称】
CLng
【类别】
转换函数
【原形】
CLng(expression)
【参数】
必选的,expression 参数可以是一个任何有效的数值型表达式。其值为-2,147,483,648 至 2,147,483,647,小数部分四舍五入。
【返回值】
返回一个Long。
【异常/错误】
无
【描述】
强制将一个表达式转换成Long特定数据类型。
【示例】
本示例使用 CLng 函数将一数值转换为 Long。
Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427.45: MyVal2 = 25427.55 ' MyVal1、MyVal2 均为 Double 类型。
MyLong1 = CLng(MyVal1) ' MyLong1 的值为 25427。
MyLong2 = CLng(MyVal2) ' MyLong2 的值为 25428。
【备注】
函数名称决定返回类型,如下所示。
函数
返回类型
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.79769313486232E308 至 -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
依据 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 依据系统上的国别设置来决定日期的格式。如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。另外,长日期格式,若包含有星期的字符串,也不能被识别。
CVDate 函数也提供对早期 Visual Basic 版本的兼容性。CVDate 函数的语法与 CDate 函数是完全相同的,不过,CVDate 是返回一个 Variant,它的子类型是 Date,而不是实际的 Date 类型。因为现在已有真正的 Date 类型,所以 CVDate 也不再需要了。转换一个表达式成为 Date,再赋值给一个 Variant,也可以达到同样的效果。也可以使用这种技巧将其他真正的数据类型转换为对等的 Variant 子类型。
注意 CDec 函数不能返回独立的数据类型,而总是返回一个 Variant,它的值已经被转换为 Decimal 子类型。
=======
【名称】
Cos
【类别】
数学函数
【原形】
Cos(number)
【参数】
必选的,number 参数是 Double 或任何有效的数值表达式,表示一个以弧度为单位的角。
【返回值】
Double类型
【异常/错误】
无
【描述】
返回一个指定一个角的余弦值。
【示例】
Dim MyAngle, MySecant
MyAngle = 1.3 ' 定义角度(以“弧度”为单位)。
MySecant = 1 / Cos(MyAngle) ' 利用余弦计算正割(sec())。
【备注】
Cos 函数的参数为一个角,并返回直角三角形两边的比值。该比值为角的邻边长度除以斜边长度之商。结果的取值范围在 -1 到 1 之间。
为了将角度转换成弧度,请将角度乘以 pi/180。为了将弧度转换成角度,请将弧度乘以 180/pi。
=======
【名称】
CSng
【类别】
转换函数
【原形】
CSng(expression)
【参数】
必选的,expression 参数可以是一个任何有效的字符串或数值型表达式。负数为 -3.402823E38 至 -1.401298E-45;正数为 1.401298E-45 至 3.402823E38。。
【返回值】
返回一个Single。
【异常/错误】
无
【描述】
强制将一个表达式转换成Single特定数据类型。
【示例】
本示例使用 CSng 函数将一数值转换为 Single。
Dim MyDouble1, MyDouble2, MySingle1, MySingle2
' MyDouble1、MyDouble2 均为 Double 类型。
MyDouble1 = 75.3421115: MyDouble2 = 75.3421555
MySingle1 = CSng(MyDouble1) ' MySingle1 的值为 75.34211。
MySingle2 = CSng(MyDouble2) ' MySingle2 的值为 75.34216。
【备注】
函数名称决定返回类型,如下所示。
函数
返回类型
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.79769313486232E308 至 -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
依据 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 依据系统上的国别设置来决定日期的格式。如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。另外,长日期格式,若包含有星期的字符串,也不能被识别。
CVDate 函数也提供对早期 Visual Basic 版本的兼容性。CVDate 函数的语法与 CDate 函数是完全相同的,不过,CVDate 是返回一个 Variant,它的子类型是 Date,而不是实际的 Date 类型。因为现在已有真正的 Date 类型,所以 CVDate 也不再需要了。转换一个表达式成为 Date,再赋值给一个 Variant,也可以达到同样的效果。也可以使用这种技巧将其他真正的数据类型转换为对等的 Variant 子类型。
注意 CDec 函数不能返回独立的数据类型,而总是返回一个 Variant,它的值已经被转换为 Decimal 子类型。
=======
【名称】
CStr
【类别】
转换函数
【原形】
CStr(expression)
【参数】
必选的,expression 参数可以是一个任何有效的字符串或数值型表达式。其值为依据 expression 参数返回 Cstr。
【返回值】
返回一个String。
【异常/错误】
无
【描述】
强制将一个表达式转换成String特定数据类型。
【示例】
本示例使用 CStr 函数将一数值转换为 String。
Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble 为 Double 类型。
MyString = CStr(MyDouble) ' MyString 的内容为“437.324”。
【备注】
函数名称决定返回类型,如下所示。
函数
返回类型
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.79769313486232E308 至 -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
依据 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 依据系统上的国别设置来决定日期的格式。如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。另外,长日期格式,若包含有星期的字符串,也不能被识别。
CVDate 函数也提供对早期 Visual Basic 版本的兼容性。CVDate 函数的语法与 CDate 函数是完全相同的,不过,CVDate 是返回一个 Variant,它的子类型是 Date,而不是实际的 Date 类型。因为现在已有真正的 Date 类型,所以 CVDate 也不再需要了。转换一个表达式成为 Date,再赋值给一个 Variant,也可以达到同样的效果。也可以使用这种技巧将其他真正的数据类型转换为对等的 Variant 子类型。
注意 CDec 函数不能返回独立的数据类型,而总是返回一个 Variant,它的值已经被转换为 Decimal 子类型。
=======
【名称】
CurDir
【类别】
磁盘、文件、目录函数
【原形】
或 CurDir[$](驱动器名)]
【参数】
必选的。Number参数是一个任何有效的数值型表达式
【返回值】
同 number 的类型
【异常/错误】
无
【描述】
获取指定驱动器的当前路径。驱动器名为字符型表达式,指定所列目录为哪个驱动器的;如果省略该参数,函数获取当前驱动器下的路径。
【示例】
【备注】
返回一个 Variant (String),用来代表当前的路径。
【原形】
CurDir[(drive)]
可选的 drive 参数是一个字符串表达式,它指定一个存在的驱动器。如果没有指定驱动器,或 drive 是零长度字符串 (""),则 CurDir 会返回当前驱动器的路径。
本示例使用 CurDir 函数来返回当前的路径。
' 假设 C 驱动器的当前路径为“C:\WINDOWS\SYSTEM”。
' 假设 D 驱动器的当前路径为“D:\EXCEL”。
' 假设 C 为当前的驱动器。
Dim MyPath
MyPath = CurDir ' 返回“C:\WINDOWS\SYSTEM”。
MyPath = CurDir("C") ' 返回“C:\WINDOWS\SYSTEM”。
MyPath = CurDir("D") ' 返回“D:\EXCEL”。
=======
【名称】
CVar
【类别】
转换函数
【原形】
CVar(expression)
【参数】
必选的,expression 参数可以是一个任何有效的字符串或数值型表达式。其值若为数值,则范围与Double相同;若不为数值,则范围与String相同。
【返回值】
返回一个String。
【异常/错误】
无
【描述】
强制将一个表达式转换成Variant特定数据类型。
【示例】
本示例使用 CVar 函数将表达式转换为 Variant。
Dim MyInt, MyVar
MyInt = 4534 ' MyInt 为 Integer 类型。
MyVar = CVar(MyInt & "000") ' MyVar 的内容为字符串“4534000”。
【备注】
函数名称决定返回类型,如下所示。
函数
返回类型
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.79769313486232E308 至 -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
依据 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 依据系统上的国别设置来决定日期的格式。如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。另外,长日期格式,若包含有星期的字符串,也不能被识别。
CVDate 函数也提供对早期 Visual Basic 版本的兼容性。CVDate 函数的语法与 CDate 函数是完全相同的,不过,CVDate 是返回一个 Variant,它的子类型是 Date,而不是实际的 Date 类型。因为现在已有真正的 Date 类型,所以 CVDate 也不再需要了。转换一个表达式成为 Date,再赋值给一个 Variant,也可以达到同样的效果。也可以使用这种技巧将其他真正的数据类型转换为对等的 Variant 子类型。
注意 CDec 函数不能返回独立的数据类型,而总是返回一个 Variant,它的值已经被转换为 Decimal 子类型。
=======
【名称】
CVErr
【类别】
转换函数
【原形】
CVErr(errornumber)
【参数】
必选的, errornumber 参数可以是任何有效的错误号代码。
【返回值】
返回一个 Integer
【异常/错误】
无
【描述】
返回 Error 子类型的 Variant,其中包含指定的错误号。
【示例】
本示例使用 CVErr 函数返回一 Variant 类型的值,其 VarType 为 vbError (10)。如果传进去的参数不是一个数字,用户自定义函数 CalculateDouble 将会返回错误信息。可用 CVErr 返回来自用户自定义过程的自定义错误,或改变处理运行时错误的方式。IsError 函数可用来测试返回值是否代表错误状态。
' 调用 CalculateDouble,且传入一会产生错误的参数。
Sub Test()
Debug.Print CalculateDouble("345.45robert")
End Sub
' 定义 CalculateDouble 函数过程。
Function CalculateDouble(Number)
If IsNumeric(Number) Then
CalculateDouble = Number * 2 ' 返回结果。
Else
CalculateDouble = CVErr(2001) ' 返回一自定义错误码。
End If
End Function
【备注】
可以在过程中,使用 CVErr 函数来创建用户自定义错误。例如,如果创建一个函数,它可以接受若干个参数,且正常返回一个字符串,则可以让函数来判断输入的参数,确认它们是在可接受的范围内。如果不是的话,此函数将不会返回所要的字符串。在这种情况下,CVErr 可以返回一个错误号,并告知应该采取的行动。
注意,Error 的隐式转换是不允许的,例如,不能直接把 CVErr 的返回值赋值给一个非 Variant 的变量。然而,可以对 CVErr 的返回值进行显式转换(使用 CInt、CDbl 等等),并赋值给适当的数据类型变量。
=======
【名称】
Date
【类别】
日期和时间函数
【原形】
Date[$][()]
【参数】
【返回值】
返回Variant (Date)数据类型。
【异常/错误】
无
【描述】
返回计算机系统的日期。例如:执行Print Date后的结果为:2003-4-23 。
【示例】
本示例使用 Date 函数返回系统当前的日期。
Dim MyDate
MyDate = Date ' MyDate 的值为系统当前的日期。
【备注】
日期和时间函数的函数名、函数值类型和函数功能如下表所示。针对表中的举例,设当前的系统时间为2003年4月23日下午两点18分30秒。
表 日期和时间函数
函数名
函数值类型
功能
举例
Now
Date
返回当前的系统日期和系统时间
执行Print Now后的结果为:2003-4-23 14:18:30
Date[$][()]
Date
返回当前的系统日期
执行Print Date后的结果为:2003-4-23
Time[$][()]
Date
返回当前的系统时间
执行Print Time后的结果为:14:18:30
DateSerial(年,月,日)
Integer
相对1899年12月30日(为0)返回一个天数值。其中的年、月、日参数为数值型表达式
执行Print DateSerial (99,06,01)- DateSerial (99,05,01) 后的结果为:31
DateValue(C)
Integer
相对1899年12月30日(为0)返回一个天数值,参数C为字符型表达式
执行Print DateValue (“99,06,01”)-DateValue(“99,05,01”) 后的结果为:31
Year(D)
Integer
返回日期D的年份,D可以是任何能够表示日期的数值、字符串表达式或它们的组合。其中,参数为天数时,函数值为相对于1899年12月30日后的指定天数的年号,其取值在1753到2078之间
执行Print Year(Date) 后的结果为:2003
执行Print Year(365) 后的结果为:1900
1899年12月30日后的365天是1900年
Month(D)
Integer
返回日期D的月份,函数值为1到12之间的整数
执行Print Month(Date) 后的结果为:8
Day(D)
Integer
返回日期D的日数,函数值为1到31之间的整数
执行Print Day(Date) 后的结果为:23
WeekDay(D)
Integer
返回日期D是星期几, 函数值与星期的对应关系如表2.6所示
执行Print WeekDay (Date)后的结果为:3
Hour(T)
Integer
返回时间参数中的小时数,函数值为0到23之间的整数
执行Print Hour(Now)后的结果为:14
Minute(T)
Integer
返回时间参数中的分钟数,函数值为0到59之间的整数
执行Print Minute(Now) 后的结果为:18
Second(T)
Integer
返回时间参数中的秒数,函数值为0到59之间的整数
执行PrintSecond(Now) 后的结果为:30
DateAdd(时间单位,时间,D)
Date
返回参考日期D加上一段时间T之后的日期,时间单位为一个字符串,表示所要加上的时间的单位,其取值及含义如表2.7所示
执行Print DateAdd(”m”,2,Date) 后的结果为:
2003-6-23。
执行Print DateAdd(”q”,1,Date) 后的结果为:
2003-7-23
DateDiff(时间单位,D1,D2)
Long
返回两个指定日期D1和D2之间的间隔时间。如果日期D1比D2早,则函数值为正数,否则函数值为负数。时间单位,同DateAdd函数的时间单位参数
执行Print DateDiff (“m”,#6/16/2002#,#6/16/2003#后的结果为:12
执行Print DateDiff (“m”,#6/16/2003#,#6/16/2002#后的结果为:-12
IsDate(参数)
Boolean
判断参数是否可以转换成日期,参数可以是任何类型的有效表达式。如果参数的值可转化成日期型数据,则函数值为Tree,否则函数值为False。在Microsoft Windows中,其范围为公元100年1月1日至公元9999年12月31日。
IsDate(99-6-18)=False
IsDate(“99-6-18")=True
说明:(1)在表2.5中,日期参数D是任何能够表示为日期的数值型表达式、字符串型表达式或它们的组合。时间参数T是任何能够表示为时间的数值型表达式、字符串型表达式或它们的组合。
当参数D是数值型表达式时,其值表示相对于1899年12月30日前后天数,负数是1899年12月30日以前,正数是1899年12月30日以后。
(2)星期函数Weekday(D)的函数值与星期的对应关系如下表所示。
表 星期函数Weekday(D)的函数值与星期的对应关系
函数值
星期
函数值
星期
1
星期日
5
星期四
2
星期一
6
星期五
3
星期二
7
星期六
4
星期三
=======
【名称】
DateAdd
【类别】
日期和时间函数
【原形】
DateAdd(interval, number, date)
【参数】
DateAdd 函数语法中有下列命名参数:
部分
【描述】
interval
必选。字符串表达式,是所要加上去的时间间隔。
number
必选。数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。
date
必选。Variant (Date) 或表示日期的文字,这一日期还加上了时间间隔。
对于函数DateAdd(时间单位,时间,D),其时间单位为一个字符串,表示所要加上的时间单位,其取值及含义如下表所示;时间参数可以是数值型表达式,表示所要加上的时间;其函数值可以是正数(得到未来的日期),也可以是负数(得到过去的日期)。如果T参数值包含小数点,则在计算时先四舍五入,再求函数值。
表 DateAdd函数中interval 参数(时间单位参数)取值及含义
时间单位
含义
时间单位
含义
yyyy
年
d
日
q
季
w
一周的日数
m
月
h
时
y
一年的日数
n
分
ww
周
s
秒
【返回值】
返回包含一个日期的 Variant (Date),这一日期还加上了一段时间间隔。
【异常/错误】
无
【描述】
返回参考日期D加上一段时间T之后的日期,时间单位为一个字符串,表示所要加上的时间的单位,其取值及含义如上表所示。例如:执行Print DateAdd(”m”,2,Date) 后的结果为:2003-6-23。执行Print DateAdd(”q”,1,Date) 后的结果为:2003-7-23
【示例】
本示例先取得一个日期,再用 DateAdd 函数显示未来数月后的日期。
Dim FirstDate As Date ' 声明变量。
Dim IntervalType As String
Dim Number As Integer
Dim Msg
IntervalType = "m" ' "m"指定以“月份”作为间隔。
FirstDate = InputBox("Enter a date")
Number = InputBox("Enter number of months to add")
Msg = "New date: " & DateAdd(IntervalType, Number, FirstDate)
MsgBox Msg
【备注】
可以使用 DateAdd 函数对日期加上或减去指定的时间间隔。例如,可以用 DateAdd 来计算距今天为三十天的日期;或者计算距现在为 45 分钟的时间。
为了对 date 加上“日”,可以使用“一年的日数” (“y”),“日” (”d”) 或“一周的日数” (”w”)。
DateAdd 函数将不返回有效日期。在以下实例中将 1 月31 日加上一个月:
DateAdd(m, 1, 31-Jan-95)
上例中,DateAdd 返回 1995 年 2 月 28 日,而不是 1995 年 2 月 31 日。如果 date 是 1996 年 1 月 31 日,则由于 1996 年是闰年,返回值是 1996 年 2 月 29 日。
如果计算的日期超前 100 年(减去的年度超过 date 中的年份),就会导致错误发生。
如果 number 不是一个 Long 值,则在计算时取最接近的整数值来计算。
注意???DateAdd 返回值的格式由 Control Panel设置决定,而不是由传递到date 参数的格式决定。
日期和时间函数的函数名、函数值类型和函数功能如下表所示。针对表中的举例,设当前的系统时间为2003年4月23日下午两点18分30秒。
表 日期和时间函数
函数名
函数值类型
功能
举例
Now
Date
返回当前的系统日期和系统时间
执行Print Now后的结果为:2003-4-23 14:18:30
Date[$][()]
Date
返回当前的系统日期
执行Print Date后的结果为:2003-4-23
Time[$][()]
Date
返回当前的系统时间
执行Print Time后的结果为:14:18:30
DateSerial(年,月,日)
Integer
相对1899年12月30日(为0)返回一个天数值。其中的年、月、日参数为数值型表达式
执行Print DateSerial (99,06,01)- DateSerial (99,05,01) 后的结果为:31
DateValue(C)
Integer
相对1899年12月30日(为0)返回一个天数值,参数C为字符型表达式
执行Print DateValue (“99,06,01”)-DateValue(“99,05,01”) 后的结果为:31
Year(D)
Integer
返回日期D的年份,D可以是任何能够表示日期的数值、字符串表达式或它们的组合。其中,参数为天数时,函数值为相对于1899年12月30日后的指定天数的年号,其取值在1753到2078之间
执行Print Year(Date) 后的结果为:2003
执行Print Year(365) 后的结果为:1900
1899年12月30日后的365天是1900年
Month(D)
Integer
返回日期D的月份,函数值为1到12之间的整数
执行Print Month(Date) 后的结果为:8
Day(D)
Integer
返回日期D的日数,函数值为1到31之间的整数
执行Print Day(Date) 后的结果为:23
WeekDay(D)
Integer
返回日期D是星期几, 函数值与星期的对应关系如表2.6所示
执行Print WeekDay (Date)后的结果为:3
Hour(T)
Integer
返回时间参数中的小时数,函数值为0到23之间的整数
执行Print Hour(Now)后的结果为:14
Minute(T)
Integer
返回时间参数中的分钟数,函数值为0到59之间的整数
执行Print Minute(Now) 后的结果为:18
Second(T)
Integer
返回时间参数中的秒数,函数值为0到59之间的整数
执行PrintSecond(Now) 后的结果为:30
DateAdd(时间单位,时间,D)
Date
返回参考日期D加上一段时间T之后的日期,时间单位为一个字符串,表示所要加上的时间的单位,其取值及含义如表2.7所示
执行Print DateAdd(”m”,2,Date) 后的结果为:
2003-6-23。
执行Print DateAdd(”q”,1,Date) 后的结果为:
2003-7-23
DateDiff(时间单位,D1,D2)
Long
返回两个指定日期D1和D2之间的间隔时间。如果日期D1比D2早,则函数值为正数,否则函数值为负数。时间单位,同DateAdd函数的时间单位参数
执行Print DateDiff (“m”,#6/16/2002#,#6/16/2003#后的结果为:12
执行Print DateDiff (“m”,#6/16/2003#,#6/16/2002#后的结果为:-12
IsDate(参数)
Boolean
判断参数是否可以转换成日期,参数可以是任何类型的有效表达式。如果参数的值可转化成日期型数据,则函数值为Tree,否则函数值为False。在Microsoft Windows中,其范围为公元100年1月1日至公元9999年12月31日。
IsDate(99-6-18)=False
IsDate(“99-6-18")=True
说明:(1)在表2.5中,日期参数D是任何能够表示为日期的数值型表达式、字符串型表达式或它们的组合。时间参数T是任何能够表示为时间的数值型表达式、字符串型表达式或它们的组合。
当参数D是数值型表达式时,其值表示相对于1899年12月30日前后天数,负数是1899年12月30日以前,正数是1899年12月30日以后。
(2)星期函数Weekday(D)的函数值与星期的对应关系如下表所示。
表 星期函数Weekday(D)的函数值与星期的对应关系
函数值
星期
函数值
星期
1
星期日
5
星期四
2
星期一
6
星期五
3
星期二
7
星期六
4
星期三
=======
【名称】
DateDiff
【类别】
日期和时间函数
【原形】
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
【参数】
DateDiff 函数语法中有下列命名参数:
部分
【描述】
interval
必要。字符串表达式,表示用来计算date1 和 date2 的时间差的时间间隔
Date1□date2
必要;Variant (Date)。计算中要用到的两个日期。
Firstdayofweek
可选。指定一个星期的第一天的常数。如果未予指定,则以星期日为第一天。
firstweekofyear
可选。指定一年的第一周的常数。如果未予指定,则以包含 1 月 1 日的星期为第一周。
interval 参数的设定值如下:
设置
【描述】
yyyy
年
q
季
m
月
y
一年的日数
d
日
w
一周的日数
ww
周
h
时
n
分钟
s
秒
firstdayofweek 参数的设定值如下:
常数
值
【描述】
vbUseSystem
0
使用 NLS API 设置。
vbSunday
1
星期日(缺省值)
vbMonday
2
星期一
vbTuesday
3
星期二
vbWednesday
4
星期三
vbThursday
5
星期四
vbFriday
6
星期五
vbSaturday
7
星期六
firstweekofyear参数的设定值如下:
常数
值
【描述】
vbUseSystem
0
用 NLS API 设置。
vbFirstJan1
1
从包含 1 月 1 日的星期开始(缺省值)。
vbFirstFourDays
2
从第一个其大半个星期在新的一年的一周开始。
vbFirstFullWeek
3
从第一个无跨年度的星期开始。
【返回值】
返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目。
【异常/错误】
无
【描述】
返回两个指定日期D1和D2之间的间隔时间。如果日期D1比D2早,则函数值为正数,否则函数值为负数。时间单位,同DateAdd函数的时间单位参数。例如:执行Print DateDiff (“m”,#6/16/2002#,#6/16/2003#后的结果为:12;执行Print DateDiff (“m”,#6/16/2003#,#6/16/2002#后的结果为:-12。
【示例】
本示例使用 DateDiff 函数来显示某个日期与今日相差几天。
Dim TheDate As Date ' 声明变量。
Dim Msg
TheDate = InputBox("Enter a date")
Msg = "Days from today: " & DateDiff("d", Now, TheDate)
MsgBox Msg
【备注】
DateDiff 函数可用来决定两个日期之间所指定的时间间隔数目。例如,可以使用 DateDiff 来计算两个日期之间相隔几日,或计算从今天起到年底还有多少个星期。
为了计算 date1 与 date2 相差的日数,可以使用“一年的日数”(y) 或“日”(d)。当 interval 是“一周的日数”(w) 时,DateDiff 返回两日期间的周数。如果 date1 是星期一,DateDiff 计算到 date2 为止的星期一的个数。这个数包含 date2 但不包含 date1。不过,如果 interval 是“周”(ww),则 DateDiff 函数返回两日期间的“日历周”数。由计算 date1 与 date2 之间星期日的个数而得。如果 date2 刚好是星期日,则 date2 也会被加进 DateDiff 的计数结果中;但不论 date1 是否为星期日,都不将它算进去。
如果 date1 比 date2 来得晚,则 DateDiff 函数的返回值为负数。
firstdayofweek 参数会影响使用时间间隔符号 “W” 或 “WW” 计算的结果。
如果 date1 或 date2 是日期文字,则指定的年份成为该日期的固定部分。但是,如果 date1 或 date2 用双引号 (" ") 括起来,且年份略而不提,则在每次计算表达式 date1 或 date2 时,当前年份都会插入到代码之中。这样就可以书写适用于不同年份的程序代码。
在计算 12 月 31 日和来年的 1 月 1 日的年份差时,DateDiff 返回 1 表示相差一个年份,虽然实际上只相差一天而已。
日期和时间函数的函数名、函数值类型和函数功能如下表所示。针对表中的举例,设当前的系统时间为2003年4月23日下午两点18分30秒。
表 日期和时间函数
函数名
函数值类型
功能
举例
Now
Date
返回当前的系统日期和系统时间
执行Print Now后的结果为:2003-4-23 14:18:30
Date[$][()]
Date
返回当前的系统日期
执行Print Date后的结果为:2003-4-23
Time[$][()]
Date
返回当前的系统时间
执行Print Time后的结果为:14:18:30
DateSerial(年,月,日)
Integer
相对1899年12月30日(为0)返回一个天数值。其中的年、月、日参数为数值型表达式
执行Print DateSerial (99,06,01)- DateSerial (99,05,01) 后的结果为:31
DateValue(C)
Integer
相对1899年12月30日(为0)返回一个天数值,参数C为字符型表达式
执行Print DateValue (“99,06,01”)-DateValue(“99,05,01”) 后的结果为:31
Year(D)
Integer
返回日期D的年份,D可以是任何能够表示日期的数值、字符串表达式或它们的组合。其中,参数为天数时,函数值为相对于1899年12月30日后的指定天数的年号,其取值在1753到2078之间
执行Print Year(Date) 后的结果为:2003
执行Print Year(365) 后的结果为:1900
1899年12月30日后的365天是1900年
Month(D)
Integer
返回日期D的月份,函数值为1到12之间的整数
执行Print Month(Date) 后的结果为:8
Day(D)
Integer
返回日期D的日数,函数值为1到31之间的整数
执行Print Day(Date) 后的结果为:23
WeekDay(D)
Integer
返回日期D是星期几, 函数值与星期的对应关系如表2.6所示
执行Print WeekDay (Date)后的结果为:3
Hour(T)
Integer
返回时间参数中的小时数,函数值为0到23之间的整数
执行Print Hour(Now)后的结果为:14
Minute(T)
Integer
返回时间参数中的分钟数,函数值为0到59之间的整数
执行Print Minute(Now) 后的结果为:18
Second(T)
Integer
返回时间参数中的秒数,函数值为0到59之间的整数
执行PrintSecond(Now) 后的结果为:30
DateAdd(时间单位,时间,D)
Date
返回参考日期D加上一段时间T之后的日期,时间单位为一个字符串,表示所要加上的时间的单位,其取值及含义如表2.7所示
执行Print DateAdd(”m”,2,Date) 后的结果为:
2003-6-23。
执行Print DateAdd(”q”,1,Date) 后的结果为:
2003-7-23
DateDiff(时间单位,D1,D2)
Long
返回两个指定日期D1和D2之间的间隔时间。如果日期D1比D2早,则函数值为正数,否则函数值为负数。时间单位,同DateAdd函数的时间单位参数
执行Print DateDiff (“m”,#6/16/2002#,#6/16/2003#后的结果为:12
执行Print DateDiff (“m”,#6/16/2003#,#6/16/2002#后的结果为:-12
IsDate(参数)
Boolean
判断参数是否可以转换成日期,参数可以是任何类型的有效表达式。如果参数的值可转化成日期型数据,则函数值为Tree,否则函数值为False。在Microsoft Windows中,其范围为公元100年1月1日至公元9999年12月31日。
IsDate(99-6-18)=False
IsDate(“99-6-18")=True
说明:(1)在表2.5中,日期参数D是任何能够表示为日期的数值型表达式、字符串型表达式或它们的组合。时间参数T是任何能够表示为时间的数值型表达式、字符串型表达式或它们的组合。
当参数D是数值型表达式时,其值表示相对于1899年12月30日前后天数,负数是1899年12月30日以前,正数是1899年12月30日以后。
(2)星期函数Weekday(D)的函数值与星期的对应关系如下表所示。
表 星期函数Weekday(D)的函数值与星期的对应关系
函数值
星期
函数值
星期
1
星期日
5
星期四
2
星期一
6
星期五
3
星期二
7
星期六
4
星期三
=======
【名称】
DateSerial
【类别】
日期和时间函数
【原形】
DateSerial(year, month, day)
【参数】
DateSerial 函数语法有下列的命名参数:
部分
【描述】
year
必选;Integer。从 100 到 9999 间的整数,或一数值表达式。
month
必选;Integer。任何数值表达式。
day
必选;Integer。任何数值表达式。
【返回值】
返回Variant (Integer)数据类型。
【异常/错误】
无
【描述】
返回包含指定的年、月、日的 Variant (Date)。相对1899年12月30日(为0)返回一个天数值。其中的年、月、日参数为数值型表达式。例如:执行Print DateSerial (99,06,01)- DateSerial (99,05,01) 后的结果为:31。
【示例】
本示例使用 DateSerial 函数来将指定的年月日转换为 Date 类型的表达式。
Dim MyDate
' MyDate 的值为 February 12,1969, Date 类型。
MyDate = DateSerial(1969, 2, 12) ' 返回日期。
【备注】
为了指定某个日期,如 1991 年 12 月 31 日,DateSerial 函数中的每个参数的取值范围应该是可接受的;即,日的取值范围应在 1-31 之间,而月的取值范围应在 1-12 之间。但是,当一个数值表达式表示某日之前或其后的年、月、日数时,也可以为每个使用这个数值表达式的参数指定相对日期。
以下示例中使用了数值表达式代替绝对日期。这里,DateSerial 函数返回 1990 年 8 月 1 日的 十 年 (1990 - 10) 零两个月 (8 - 2) 又一天 (1 - 1) 之前的日期;换句话说,就是 1980 年 5 月 31 日。
DateSerial(1990 - 10, 8 - 2, 1 - 1)
year 参数的数值若介于 0 与 29 之间,则将其解释为 2000–2029年,若介于 30 和 99 之间则解释为1930–1999年。而对所有其它 year 参数,则请用四位数值表示(如 1800)。
当任何一个参数的取值超出可接受的范围时,它会适时进位到下一个较大的时间单位。例如,如果指定了 35 天,则这个天数被解释成一个月加上多出来的日数,多出来的日数将由其年份与月份来决定。如果一个参数值超出 -32,768 到 32,767 的范围,就会导致错误发生。
日期和时间函数的函数名、函数值类型和函数功能如下表所示。针对表中的举例,设当前的系统时间为2003年4月23日下午两点18分30秒。
表 日期和时间函数
函数名
函数值类型
功能
举例
Now
Date
返回当前的系统日期和系统时间
执行Print Now后的结果为:2003-4-23 14:18:30
Date[$][()]
Date
返回当前的系统日期
执行Print Date后的结果为:2003-4-23
Time[$][()]
Date
返回当前的系统时间
执行Print Time后的结果为:14:18:30
DateSerial(年,月,日)
Integer
相对1899年12月30日(为0)返回一个天数值。其中的年、月、日参数为数值型表达式
执行Print DateSerial (99,06,01)- DateSerial (99,05,01) 后的结果为:31
DateValue(C)
Integer
相对1899年12月30日(为0)返回一个天数值,参数C为字符型表达式
执行Print DateValue (“99,06,01”)-DateValue(“99,05,01”) 后的结果为:31
Year(D)
Integer
返回日期D的年份,D可以是任何能够表示日期的数值、字符串表达式或它们的组合。其中,参数为天数时,函数值为相对于1899年12月30日后的指定天数的年号,其取值在1753到2078之间
执行Print Year(Date) 后的结果为:2003
执行Print Year(365) 后的结果为:1900
1899年12月30日后的365天是1900年
Month(D)
Integer
返回日期D的月份,函数值为1到12之间的整数
执行Print Month(Date) 后的结果为:8
Day(D)
Integer
返回日期D的日数,函数值为1到31之间的整数
执行Print Day(Date) 后的结果为:23
WeekDay(D)
Integer
返回日期D是星期几, 函数值与星期的对应关系如表2.6所示
执行Print WeekDay (Date)后的结果为:3
Hour(T)
Integer
返回时间参数中的小时数,函数值为0到23之间的整数
执行Print Hour(Now)后的结果为:14
Minute(T)
Integer
返回时间参数中的分钟数,函数值为0到59之间的整数
执行Print Minute(Now) 后的结果为:18
Second(T)
Integer
返回时间参数中的秒数,函数值为0到59之间的整数
执行PrintSecond(Now) 后的结果为:30
DateAdd(时间单位,时间,D)
Date
返回参考日期D加上一段时间T之后的日期,时间单位为一个字符串,表示所要加上的时间的单位,其取值及含义如表2.7所示
执行Print DateAdd(”m”,2,Date) 后的结果为:
2003-6-23。
执行Print DateAdd(”q”,1,Date) 后的结果为:
2003-7-23
DateDiff(时间单位,D1,D2)
Long
返回两个指定日期D1和D2之间的间隔时间。如果日期D1比D2早,则函数值为正数,否则函数值为负数。时间单位,同DateAdd函数的时间单位参数
执行Print DateDiff (“m”,#6/16/2002#,#6/16/2003#后的结果为:12
执行Print DateDiff (“m”,#6/16/2003#,#6/16/2002#后的结果为:-12
IsDate(参数)
Boolean
判断参数是否可以转换成日期,参数可以是任何类型的有效表达式。如果参数的值可转化成日期型数据,则函数值为Tree,否则函数值为False。在Microsoft Windows中,其范围为公元100年1月1日至公元9999年12月31日。
IsDate(99-6-18)=False
IsDate(“99-6-18")=True
说明:(1)在表2.5中,日期参数D是任何能够表示为日期的数值型表达式、字符串型表达式或它们的组合。时间参数T是任何能够表示为时间的数值型表达式、字符串型表达式或它们的组合。
当参数D是数值型表达式时,其值表示相对于1899年12月30日前后天数,负数是1899年12月30日以前,正数是1899年12月30日以后。
(2)星期函数Weekday(D)的函数值与星期的对应关系如下表所示。
表 星期函数Weekday(D)的函数值与星期的对应关系
函数值
星期
函数值
星期
1
星期日
5
星期四
2
星期一
6
星期五
3
星期二
7
星期六
4
星期三
=======
【名称】
DateValue
【类别】
日期和时间函数
【原形】
DateValue(date)
【参数】
必选的,date 参数通常是字符串表达式,表示从 100 年 1 月 1 日到 9999? 年 12 月 31 日之间的一个日期。但是,date 参数也可以是任何表达式,其所代表的日期、时间在上述范围内。
【返回值】
返回Variant (Integer)数据类型。
【异常/错误】
无
【描述】
返回相对1899年12月30日(为0)返回一个天数值,参数C为字符型表达式。例如:执行Print DateValue (“99,06,01”)-DateValue(“99,05,01”) 后的结果为:31。
【示例】
本示例使用 DateValue 函数将字符串转换为日期。也可以使用日期原义直接 给 Variant 或 Date 类型的变量赋值日期,例如 MyDate = #2/12/69# 。
Dim MyDate
MyDate = DateValue("February 12, 1969") ' 返回日期。
【备注】
如果 date 是一个字符串,且其内容只有数字以及分隔数字的日期分隔符,则 DateValue 就会根据系统中指定的短日期格式来识别月、日、年的顺序。DateValue 也识别明确的英文月份名称,全名或缩写均可。例如,除了 12/30/1991 和 12/30/91 之外,DateValue 也识别 December 30, 1991 和 Dec 30, 1991。
如果 date 中略去了年这一部分,DateValue 就会使用由计算机系统日期设置的当前年份。
如果 date 参数包含时间信息,则 DateValue 不会返回它。但是,如果 date 包含无效时间信息(如 89:98),则会导致错误发生。
日期和时间函数的函数名、函数值类型和函数功能如下表所示。针对表中的举例,设当前的系统时间为2003年4月23日下午两点18分30秒。
表 日期和时间函数
函数名
函数值类型
功能
举例
Now
Date
返回当前的系统日期和系统时间
执行Print Now后的结果为:2003-4-23 14:18:30
Date[$][()]
Date
返回当前的系统日期
执行Print Date后的结果为:2003-4-23
Time[$][()]
Date
返回当前的系统时间
执行Print Time后的结果为:14:18:30
DateSerial(年,月,日)
Integer
相对1899年12月30日(为0)返回一个天数值。其中的年、月、日参数为数值型表达式
执行Print DateSerial (99,06,01)- DateSerial (99,05,01) 后的结果为:31
DateValue(C)
Integer
相对1899年12月30日(为0)返回一个天数值,参数C为字符型表达式
执行Print DateValue (“99,06,01”)-DateValue(“99,05,01”) 后的结果为:31
Year(D)
Integer
返回日期D的年份,D可以是任何能够表示日期的数值、字符串表达式或它们的组合。其中,参数为天数时,函数值为相对于1899年12月30日后的指定天数的年号,其取值在1753到2078之间
执行Print Year(Date) 后的结果为:2003
执行Print Year(365) 后的结果为:1900
1899年12月30日后的365天是1900年
Month(D)
Integer
返回日期D的月份,函数值为1到12之间的整数
执行Print Month(Date) 后的结果为:8
Day(D)
Integer
返回日期D的日数,函数值为1到31之间的整数
执行Print Day(Date) 后的结果为:23
WeekDay(D)
Integer
返回日期D是星期几, 函数值与星期的对应关系如表2.6所示
执行Print WeekDay (Date)后的结果为:3
Hour(T)
Integer
返回时间参数中的小时数,函数值为0到23之间的整数
执行Print Hour(Now)后的结果为:14
Minute(T)
Integer
返回时间参数中的分钟数,函数值为0到59之间的整数
执行Print Minute(Now) 后的结果为:18
Second(T)
Integer
返回时间参数中的秒数,函数值为0到59之间的整数
执行PrintSecond(Now) 后的结果为:30
DateAdd(时间单位,时间,D)
Date
返回参考日期D加上一段时间T之后的日期,时间单位为一个字符串,表示所要加上的时间的单位,其取值及含义如表2.7所示
执行Print DateAdd(”m”,2,Date) 后的结果为:
2003-6-23。
执行Print DateAdd(”q”,1,Date) 后的结果为:
2003-7-23
DateDiff(时间单位,D1,D2)
Long
返回两个指定日期D1和D2之间的间隔时间。如果日期D1比D2早,则函数值为正数,否则函数值为负数。时间单位,同DateAdd函数的时间单位参数
执行Print DateDiff (“m”,#6/16/2002#,#6/16/2003#后的结果为:12
执行Print DateDiff (“m”,#6/16/2003#,#6/16/2002#后的结果为:-12
IsDate(参数)
Boolean
判断参数是否可以转换成日期,参数可以是任何类型的有效表达式。如果参数的值可转化成日期型数据,则函数值为Tree,否则函数值为False。在Microsoft Windows中,其范围为公元100年1月1日至公元9999年12月31日。
IsDate(99-6-18)=False
IsDate(“99-6-18")=True
说明:(1)在表2.5中,日期参数D是任何能够表示为日期的数值型表达式、字符串型表达式或它们的组合。时间参数T是任何能够表示为时间的数值型表达式、字符串型表达式或它们的组合。
当参数D是数值型表达式时,其值表示相对于1899年12月30日前后天数,负数是1899年12月30日以前,正数是1899年12月30日以后。
(2)星期函数Weekday(D)的函数值与星期的对应关系如下表所示。
表 星期函数Weekday(D)的函数值与星期的对应关系
函数值
星期
函数值
星期
1
星期日
5
星期四
2
星期一
6
星期五
3
星期二
7
星期六
4
星期三
=======
【名称】
Day
【类别】
日期和时间函数
【原形】
Day(date)
【参数】
必选的,date 参数可以是任何能够表示日期的 Variant、数值表达式、字符串表达式或它们的组合。如果 date 包含 Null,则返回 Null。
【返回值】
返回一个 Variant (Integer),其值为 1 到 31 之间的整数,表示一个月中的某一日。
【异常/错误】
无
【描述】
返回日期D的日数,函数值为1到31之间的整数。例如:执行Print Day(Date) 后的结果为:23。
【示例】
本示例使用 Day 函数将指定的日期转换为该月的第几天。在开发环境中,日期原义会根据系统的地区设置,以短式日期格式显示。。
Dim MyDate, MyDay
MyDate = #February 12, 1969# ' 指定一日期。
MyDay = Day(MyDate) ' MyDay 的值为 12。
【备注】
日期和时间函数的函数名、函数值类型和函数功能如下表所示。针对表中的举例,设当前的系统时间为2003年4月23日下午两点18分30秒。
表 日期和时间函数
函数名
函数值类型
功能
举例
Now
Date
返回当前的系统日期和系统时间
执行Print Now后的结果为:2003-4-23 14:18:30
Date[$][()]
Date
返回当前的系统日期
执行Print Date后的结果为:2003-4-23
Time[$][()]
Date
返回当前的系统时间
执行Print Time后的结果为:14:18:30
DateSerial(年,月,日)
Integer
相对1899年12月30日(为0)返回一个天数值。其中的年、月、日参数为数值型表达式
执行Print DateSerial (99,06,01)- DateSerial (99,05,01) 后的结果为:31
DateValue(C)
Integer
相对1899年12月30日(为0)返回一个天数值,参数C为字符型表达式
执行Print DateValue (“99,06,01”)-DateValue(“99,05,01”) 后的结果为:31
Year(D)
Integer
返回日期D的年份,D可以是任何能够表示日期的数值、字符串表达式或它们的组合。其中,参数为天数时,函数值为相对于1899年12月30日后的指定天数的年号,其取值在1753到2078之间
执行Print Year(Date) 后的结果为:2003
执行Print Year(365) 后的结果为:1900
1899年12月30日后的365天是1900年
Month(D)
Integer
返回日期D的月份,函数值为1到12之间的整数
执行Print Month(Date) 后的结果为:8
Day(D)
Integer
返回日期D的日数,函数值为1到31之间的整数
执行Print Day(Date) 后的结果为:23
WeekDay(D)
Integer
返回日期D是星期几, 函数值与星期的对应关系如表2.6所示
执行Print WeekDay (Date)后的结果为:3
Hour(T)
Integer
返回时间参数中的小时数,函数值为0到23之间的整数
执行Print Hour(Now)后的结果为:14
Minute(T)
Integer
返回时间参数中的分钟数,函数值为0到59之间的整数
执行Print Minute(Now) 后的结果为:18
Second(T)
Integer
返回时间参数中的秒数,函数值为0到59之间的整数
执行PrintSecond(Now) 后的结果为:30
DateAdd(时间单位,时间,D)
Date
返回参考日期D加上一段时间T之后的日期,时间单位为一个字符串,表示所要加上的时间的单位,其取值及含义如表2.7所示
执行Print DateAdd(”m”,2,Date) 后的结果为:
2003-6-23。
执行Print DateAdd(”q”,1,Date) 后的结果为:
2003-7-23
DateDiff(时间单位,D1,D2)
Long
返回两个指定日期D1和D2之间的间隔时间。如果日期D1比D2早,则函数值为正数,否则函数值为负数。时间单位,同DateAdd函数的时间单位参数
执行Print DateDiff (“m”,#6/16/2002#,#6/16/2003#后的结果为:12
执行Print DateDiff (“m”,#6/16/2003#,#6/16/2002#后的结果为:-12
IsDate(参数)
Boolean
判断参数是否可以转换成日期,参数可以是任何类型的有效表达式。如果参数的值可转化成日期型数据,则函数值为Tree,否则函数值为False。在Microsoft Windows中,其范围为公元100年1月1日至公元9999年12月31日。
IsDate(99-6-18)=False
IsDate(“99-6-18")=True
说明:(1)在表2.5中,日期参数D是任何能够表示为日期的数值型表达式、字符串型表达式或它们的组合。时间参数T是任何能够表示为时间的数值型表达式、字符串型表达式或它们的组合。
当参数D是数值型表达式时,其值表示相对于1899年12月30日前后天数,负数是1899年12月30日以前,正数是1899年12月30日以后。
(2)星期函数Weekday(D)的函数值与星期的对应关系如下表所示。
表 星期函数Weekday(D)的函数值与星期的对应关系
函数值
星期
函数值
星期
1
星期日
5
星期四
2
星期一
6
星期五
3
星期二
7
星期六
4
星期三
=======
【名称】
DblClick
【类别】
事件过程
【原形】
Private Sub Form_DblClick ( )
Private Sub object_DblClick (index As Integer)
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single)
【参数】
部分
【描述】
object
对象表达式,其值是“应用于”列表中的一个对象。
index
如果控件在控件数组内,则这个 index 值就用来标识该控件。
【描述】
当程序运行时,双击窗体的空白区域或双击窗体上的一个无效控件对象时,就会产生DblClick事件。 如果双击窗体内某个控件对象,则该窗体不会产生DblClick事件。
如果 DblClick 在系统双击时间限制内没有出现,则对象识别另一个 Click 事件。不接受 DblClick 事件的控件可能接受两次单击而不是 DblClick 事件。
在一个对象上按下和释放鼠标按钮并再次按下和释放鼠标按钮时,该事件发生。
对于窗体而言,当双击被禁用的控件或窗体的空白区域时,DblClick 事件发生。对于控件而言,DblClick 事件在以下情形下发生:
用鼠标左键双击控件。
双击 Style 属性设置为 1(Simple) 的 ComboBox 控件中的项目,或者在 FileListBox 、 ListBox 、DBCombo 或 DBList 控件中的项目。
【示例】
Private Sub Form_Load ()
List1.AddItem "John" ' 添加列表框项。
List1.AddItem "Paul"
List1.AddItem "George"
List1.AddItem "Ringo"
End Sub
Private Sub List1_DblClick ()
Command1.Value = True ' 触发 Click 事件。
End Sub
Private Sub Command1_Click ()
Text1.Text = List1.Text ' 显示选定。
End Sub
【备注】
如果控件在一个控件数组内,则这个 Index 参数唯一地标识这个控件。可以使用 DblClick 事件过程执行一个隐式操作,如双击图标来打开一个窗口或文档。也可用这类过程执行单一操作的多个步骤,例如用双击在列表框中选定一项并关闭对话框。
要在 Visual Basic 中产生这类快捷效果,可以使用带有缺省按钮的列表框的或叠层排列文件列表框的 DblClick 事件过程;所谓缺省按钮就是 Default 属性设置为 True 的 CommandButton 控件。作为列表框 DblClick 事件过程的一部分,只需简单调用缺省按钮的 Click 事件。
对于那些接收 Mouse 事件的对象,事件按这样的次序发生:MouseDown, MouseUp, Click, DblClick 和 MouseUp。
如果 DblClick 在系统双击时间限制内没有出现,则对象识别另一个 Click 事件。双击时间限制可以变化,因为用户可在控制面板设置双击速度。当与这些相关事件过程打交道时,必须确保它们的活动不发生冲突。不接受 DblClick 事件的控件可能接受两次单击而不是 DblClick 事件。
注意 要想区别鼠标的左、右、中按钮,使用 MouseDown 和 MouseUp 事件。
如果在 Click 事件中有编码,DlbClick 事件将永远不会触发。
无论是通过单击 CommandButton 控件还是双击列表项,本范例将显示 TextBox 控件中选定的列表项。要试用此例,将代码粘贴包含 ListBox 控件、TextBox 控件和 CommandButton 控件的 Form 对象的声明部分。然后运行此例并单击 CommandButton 控件或双击在 ListBox 控件中的一项。
=======
【名称】
Deactivate
【类别】
事件过程
【原形】
Private Sub object_Deactivate( )
【参数】
object 所在处代表一个对象表达式,其值是“应用于”列表中的一个对象。
【描述】
Deactivate -当一个对象不再是活动窗口时发生。
【示例】
本例通过更新状态栏文本来显示活动窗体的标题。要尝试这个例子,先建立一个 Form 对象 (Form1) 及一个新的 MDIForm 对象 (MDIForm1)。在 MDIForm1 上,绘出一个带有 Label 控件的 PictureBox 控件。在 Form1 上,将 MDIChild 属性设为 True。将 MDIForm_Load 事件过程代码粘贴到 MDIForm 对象的声明部分。将 Form_Activate 事件过程代码粘贴到 MDI 子窗体的声明部分,然后按下 F5 键。
Private Sub MDIForm_Load ()
Form1.Caption = "Form #1" '设置 Form1 的标题。
Dim NewForm As New Form1 '创建一个新的子窗体。
Load NewForm
NewForm.Caption = "Form #2" ' 设置新窗体的标题。
NewForm.Show ' 显示新窗体。
End Sub
Private Sub Form_Activate ()
' 设置状态栏文本。
MDIForm1.Label1.Caption = "Current form: " & Me.Caption
End Sub
【备注】
一个对象可以通过诸如单击它,或使用代码中的 Show 或 SetFocus 方法之类的用户操作而变成活动的。
Activate 事件仅当一个对象可见时才发生。例如,除非使用 Show 方法或将窗体的 Visible 属性设置为 True,否则,一个用 Load 语句加载的窗体是不可见的。
Activate 和 Deactivate 事件仅当焦点在一个应用程序内移动时才发生。在另一个应用程序中将焦点移向或移离一个对象时,不会触发任何一个事件。当一个对象卸载时,不会发生 Deactivate 事件。
Activate 事件在 GotFocus 事件之前发生,LostFocus 事件在 Deactivate 事件之前发生。
对 MDI 子窗体来说,这些事件仅当焦点从一个子窗体改变到另一个子窗体时才会发生。例如,在一个带有两个子窗体的 MDIForm 对象中,当焦点在子窗体之间移动时,它们能接收这些事件。然而,当焦点在一个 MDI 子窗体和一个非 MDI 子窗体之间移动时,父 MDIForm 将接收 Activate 和 Deactivate 事件。
如果一个由 Visual Basic 建立的 .exe 文件显示一个对话框,此对话框也是由建立在 Visual Basic 中的一个 .dll 文件所创建的,那么.exe 文件的窗体将获得 Deactivate 和 LostFocus 事件。这可能是不期望的,因为下列情况下不应获得 Deactivate 事件:
如果对象是一个过程之外的部件。
如果对象不是用 Visual Basic 编写的。
在开发环境中调用一个 Visual Basic 建立中的 DLL 时。
当一个对象(此处是窗体)被激活(窗体可见,为活动窗口)时,就会产生Activate事件。当一个对象不再是活动窗体时发生Deactivate事件。只有当对象为可见的时,才能产生Activate事件。运行该窗体程序、使用Show(显示)、 SetFocus(设置焦点)方法,单击一个对象,将对象的Visible属性设置为True等时,可激活窗体,使窗体成为活动窗口。用 Load 语句加载的窗体是不可见的。
当焦点在一个应用程序内移动时,会产生Activate 和 Deactivate 事件。在另一个应用程序中将焦点移入或移出一个对象时,不会触发任何一个事件。当一个对象卸载时,不会发生 Deactivate 事件。
Activate 事件在 GotFocus 事件之前发生,LostFocus 事件在 Deactivate 事件之前发生。
对 MDI 子窗体来说,这些事件仅当焦点从一个MDI子窗体改变到另一个MDI子窗体时才会发生。例如,在一个带有两个MDI子窗体的 MDI窗体中,当焦点在子窗体之间移动时,它们能接收这些事件。然而,当焦点在一个 MDI 子窗体和一个非 MDI 子窗体之间移动时,MDIForm 将接收 Activate 和 Deactivate 事件。
=======
【名称】
Dir
【类别】
磁盘、文件、目录函数
【原形】
或 Dir[$](路径名[,文件属性])]
【参数】
必选的。Number参数是一个任何有效的数值型表达式
【返回值】
同 number 的类型
【异常/错误】
无
【描述】
获取 [文件属性]参数指定属性相匹配的第一个文件名、目录名或文件夹名称。它必须与指定的模式或文件属性、或磁盘卷标相匹配。以后再调用该函数,则获取下一个与参数相匹配的文件名。
【示例】
【备注】
(1)[路径名]参数是一个字符串表达式,指定文件所在路径名或所要列文件名。支持多字符的通配符 (*) 和单字符 (?),用来指定多重文件。
(2)[文件属性]参数为常数或数值表达式,用来指定文件属性。如果省略,则会获取匹配pathname 但不包含属性的文件。[文件属性]参数可以如下表所示。如果省略该参数,函数获取普通型的指定文件。
表 [文件属性]参数的取值及其功能
值
常量
功能
0
vbNormal
指定没有属性的文件。它是默认值
1
vbReadOnly
指定无属性的只读文件
2
vbHidden
指定无属性的隐藏文件
4
VbSystem
指定无属性的系统文件
8
vbVolume
指定卷标文件。如果指定了其它属性,则忽略vbVolume
16
vbDirectory
指定无属性文件及其路径和文件夹
注:[文件属性]参数的取值可以相加使用。
(3)函数值是字符型数据。它必须与[文件属性]参数指定的模式或文件属性、或磁盘卷标相匹配。
(4)在第一次调用 Dir 函数时,必须指定[路径名]参数,否则会产生错误。以后再调用Dir 函数时可省略参数。
(5)若想得到其它匹配[文件属性]参数的文件名,再一次调用 Dir,且不要使用参数。如果已没有合乎条件的文件,则 Dir函数会获取一个零长度字符串 ("")。一旦获取值为零长度字符串,并要再次调用 Dir 时,就必须指定[路径名]参数,否则会产生错误。
=======
【名称】
DragDrop
【类别】
事件过程
【原形】
Private Sub Form_DragDrop(source As Control, x As Single, y As Single)
Private Sub MDIForm_DragDrop(source As Control, x As Single, y As Single)
Private Sub object_DragDrop([index As Integer,]source As Control, x As Single, y As Single)
【参数】
DragDrop 事件参数包含下列部分:
部分
【描述】
object
一个对象表达式,其值是“应用于”列表中的一个对象。
index
一个整数,用来唯一地标识一个在控件数组中的控件。
source
正在被拖动的控件。可用此参数将属性和方法包括在事件过程中 — 例如,Source.Visible = 0。
x, y
是一个指定当前鼠标指针在目标窗体或控件中水平 (x) 和垂直 (y) 位置的数字。这些坐标值通常用目标坐标系统来表示,该坐标系是通过 ScaleHeight、ScaleWidth、ScaleLeft 和 ScaleTop 属性而设置的。
【描述】
当用户在窗体内用鼠标进行拖曳操作时,就会产生该事件。它的格式是:
Sub Form_DragDrop(Source As Control,x As Single,y As Single)
其中,括号里面是该事件过程的三个参数:Source表示被拖曳的控件对象名称;x和y分别为拖曳后鼠标指针的水平、垂直坐标值。利用DragDrop事件,用户可以控制拖曳操作后应执行哪些操作。
在一个完整的拖放动作(即将一个控件拖动到一个对象上,并释放鼠标按钮)完成,或使用 Drag 方法,并将其 action 参数被设置为 2 (Drop) 时,该事件发生。
【示例】
本例演示将一个 PictureBox 控件放到另一个 PictureBox 控件上的视觉效果。要尝试这个例子,可将代码粘贴到一个含有 3 个 PictureBox 控件的窗体声明部分。将 Picture1 和 Picture2 的 DragMode 属性设置为 1(自动)。使用 Picture 属性将位图赋值给 Picture1 和 Picture2,然后按 F5 键并将 Picture1 或 Picture2 拖到 Picture3 上。
Private Sub Picture3_DragDrop (Source As Control, X as Single, Y As Single)
If TypeOf Source Is PictureBox Then
' 将 Picture3 位图设置为与源控件相同。
Picture3.Picture = Source.Picture
End If
End Sub
【备注】
DragDrop 事件过程用来控制在一个拖动操作完成时将会发生的情况。例如,可将源控件移到一个新的位置或将一个文件从一个位置复制到另一个位置。
当 source 参数中可能使用多个控件时:
应使用 TypeOf 关键字和 If 语句一起确定与 source 表示的控件的类型。
应使用该控件的 Tag 属性来标识一个控件,然后使用 DragDrop 事件过程。
注意 应使用 DragMode 属性和 Drag 方法来指定开始拖动的方法。一旦开始拖动,可使用 DragOver 事件过程来处理位于 DragDrop 事件前面的事件。
=======
【名称】
DragOver
【类别】
事件过程
【原形】
Private Sub Form_DragOver(source As Control, x As Single, y As Single, state As Integer)
Private Sub MDIForm_DragOver(source As Control, x As Single, y As Single, state As Integer)
Private Sub object_DragOver([index As Integer,]source As Control, x As Single, y As Single, state As Integer)
【参数】
DragOver 事件参数包括下列部分:
部分
【描述】
object
一个对象表达式,其值是“应用于”列表中的一个对象。
index
一个整数,用来唯一地标识一个在控件数组中的控件。
source
正在被拖动的控件。可用此参数在事件过程中引用各属性和方法—例如, Source.Visible = False。
x, y
是一个指定当前鼠标指针在目标窗体或控件中水平 (x) 和垂直 (y) 位置的数字。这些坐标值通常用目标坐标系统来表示,该坐标系是通过 ScaleHeight、ScaleWidth、ScaleLeft 和 ScaleTop 属性而设置的。
state
是一个整数,它相应于一个控件的转变状态,该控件在相关目标窗体或控件中正在被拖动:
?
0 = 进入(源控件正被向一个目标范围内拖动)。
?
1 = 离去(源控件正被向一个目标范围外拖动)。
?
2 = 跨越(源控件在目标范围内从一个位置移到了另一位置)。
【描述】
它在拖放操作正在进行时发生。可使用此事件对鼠标指针在一个有效目标上的进入、离开或停顿等进行监控。鼠标指针的位置决定接收此事件的目标对象。
【示例】
本例演示一种指示有效的拖放目标的方法。当一个 TextBox 控件被拖过一个 PictureBox 控件时,指针从缺省的箭头变为特定的图标。当源被拖到其它地方时,指针恢复到缺省的状态。要尝试这个例子,可将代码粘贴到一个包含 1 个小 TextBox 和一个 PictureBox 的窗体的声明部分。将 TextBox 控件的 DragMode 属性设置为 1,然后按 F5 键并把 TextBox 拖过 PictureBox。
Private Sub Picture1_DragOver (Source As Control, X As Single, Y As Single, State As Integer)
Select Case State
Case vbEnter
' 装载图标。
Source.DragIcon = LoadPicture("ICONS\ARROWS\POINT03.ICO")
Case vbLeave
Source.DragIcon = LoadPicture() ' 卸载图标.
End Select
End Sub
Private Sub Picture1_DragDrop (Source As Control, X As Single, Y As Single)
Source.DragIcon = LoadPicture() ' 卸载图标。
End Sub
【备注】
为了确定在拖动开始后和控件放在目标上之前发生些什么,应使用 DragOver 事件过程。例如,通过加亮目标(由代码设置 BackColor 或 ForeColor 属性)或者显示一个特定的拖动指针(由代码设置 DragIcon 或 MousePointer 属性)可验证有效的目标范围。
为了确定一些关键转变点处的操作,应使用 state 参数。例如,当 state 的设置为 0(进入)时可使一个可能的目标加亮,而当 state 的设置为 1(离去)时可恢复该对象先前的外观。
在 state 的设置为 0(进入)对象接收 DragOver 事件的情况:
如果源控件被放在该对象上,则该对象就接收一个 DragDrop 事件。
如果源控件没有被放在该对象上,则当 state 的设置为 1(离去)时该对象就接收另一个 DragOver 事件。
注意 应使用 DragMode 属性和 Drag 方法指定开始拖动的方式。关于 source 参数的使用技巧,请参阅 DragDrop 事件说明主题部分。
=======
【名称】
EOF
【类别】
磁盘、文件、目录函数
【原形】
或 EOF(文件号)
【参数】
必选的。Number参数是一个任何有效的数值型表达式
【返回值】
同 number 的类型
【异常/错误】
无
【描述】
获取[文件号]参数指定的已打开文件的文件指针是否已指向文件尾。若已指向文件尾,则其值为True;若未指向文件尾,则其值为False。使用 EOF 是为了避免因试图在文件结尾处进行输入而产生的错误。
【示例】
【备注】
返回一个 Integer,它包含 Boolean 值 True,表明已经到达为 Random 或顺序 Input 打开的文件的结尾。
【原形】
EOF(filenumber)
必要的 filenumber 参数是一个 Integer,包含任何有效的文件号。
说明
使用 EOF 是为了避免因试图在文件结尾处进行输入而产生的错误。
直到到达文件的结尾,EOF 函数都返回 False。对于为访问 Random 或 Binary 而打开的文件,直到最后一次执行的 Get 语句无法读出完整的记录时,EOF 都返回 False。
对于为访问 Binary 而打开的文件,在 EOF 函数返回 True 之前,试图使用 Input 函数读出整个文件的任何尝试都会导致错误发生。在用 Input 函数读出二进制文件时,要用 LOF 和 Loc 函数来替换 EOF 函数,或者将 Get 函数与 EOF 函数配合使用。对于为 Output 打开的文件,EOF 总是返回 True。
本示例使用 EOF 函数来检测文件尾。示例中假设 MYFILE 为有数个文本行的文本文件。
Dim InputData
Open "MYFILE" For Input As #1 ' 为输入打开文件。
Do While Not EOF(1) ' 检查文件尾。
Line Input #1, InputData ' 读入一行数据。
Debug.Print InputData ' 在立即窗口中显示。
Loop
Close #1 ' 关闭文件。
=======
Error(ADO Data控件)
【名称】
Error(ADO Data控件)
【类别】
事件过程
【原形】
object_Error([Index As Integer,] ByVal ErrorNumber As Long, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, fCancelDisplay As Boolean)
【参数】
Error 事件的语法包括下面这些部分:
部分
【描述】
Object
一个对象表达式,其值为“应用于”列表中的一个对象。
Index
如果控件在一个控件数组中,此值可以标识该控件。
ErrorNumber
本地错误号码。
Description
对错误的描述。
Scode
服务器返回的错误代码。
Source
错误的来源。
HelpFile
包含该错误详细信息的帮助文件的路径。
HelpContext
帮助主题的上下文号码。
fCancelDisplay
一个布尔值,可以设置这个值来取消对错误消息的显示。如“设置值”中所描述的。
fCancelDisplay 的设置值为:
常数
值
【描述】
False
0
继续。
True
-1
(缺省)显示错误消息。
【描述】
只有在没有执行任何 Visual Basic 代码而发生了一个数据访问错误的情况下,才会发生这个事件。
【示例】
无
【备注】
无论何时,只要某个不是由 Visual Basic 引起的错误中止了一个操作,就会发生 Error 事件。错误可以分为两类:由 ADO 产生的错误和一般性错误(例如,内存不足错误)。如果错误的原因是 ADO,则 ADO Data 控件就会在描述字符串中添加与上下文相关的文本。
=======
Error(Data 控件)
【名称】
Error(Data 控件)
【类别】
事件过程
【原形】
Private Sub object_Error ([index As Integer,] dataerr As Integer, response As Integer)
【参数】
Error(Data 控件)事件参数包括下列部分:
部分
【描述】
object
是一个对象表达式,该对象一定能在“应用于”列表中找到。
index
如果它是在一个控件数组中,则用来标识该控件。
dataerr
错误号
response
按照设置中所描述的,是一个对应于所要采用响应的编号。
Response 的设置有:
常数
值
【描述】
vbDataErrContinue
0
继续。
vbDataErrDisplay
1
(默认值)显示该错误信息。
【描述】
仅当没有 Visual Basic 代码在执行时,数据存取错误这样的结果才会出现。
【示例】
本例中,在 Form_Load 事件完成后,如果由 Data 控件的 DatabaseName 属性所指定的数据库未找到,就显示一个“打开”对话框的示例。
Private Sub Data1_Error (DataError As Integer, Response As Integer)
Select Case DataError
' 如果数据库文件未找到。
Case 3024
' 显示一个“打开”对话框。
CommonDialog1.ShowOpen
...
End Select
End Sub
【备注】
这些常数列在对象浏览器的 Visual Basic (VB) 对象库中。
通常要在代码中为运行时错误提供错误处理功能。然而没有代码运行时,也会发生运行错误,如当:
用户单击 Data 控件按钮。
Data 控件要自动打开一个数据库并在 Form_Load 事件后装载一个 Recordset 对象。
为一个自定义控件执行一些诸如 MoveNext 方法,AddNew 方法或 Delete 方法之类的操作。
如果有一个错误出自上述操作,则产生 Error 事件。
如果未对 Error 事件编写事件过程,Visual Basic 将显示与该错误相关的信息。
出现在 Form_Load 事件之前的错误是不可捕获的,也不会触发 Error 事件。例如,在设计时如果将数据控件的属性设置为指向一个不知名的数据库表,就会发生一个不可捕获的错误。
=======
Error(DataGrid 控件)
【名称】
Error(DataGrid 控件)
【类别】
事件过程
【原形】
Private Sub object_Error([ index As Integer,] ByVal dataerror As Integer, response As Integer)
【参数】
Error 事件的语法包含下面部分:
部分
【描述】
object
对象表达式,其值是“应用于”列表中的一个对象。
Index
Interger,它标识控件数组中的一个控件。
dataerror
Interger,它标识已出现的错误。
response
Interger,将其设置为 0,就可不显示错误信息,参见“设置值”中的描述。
设置值
response 的设置值为:
设置值
【描述】
0
不显示错误消息。
1
(缺省值)显示与错误关联的消息。
【描述】
该事件由于数据访问错误而出现,而在没有执行 Visual Basic 代码时就会产生这个错误。
【示例】
无
【备注】
即使应用程序在代码中处理了运行时错误,但在未执行代码时,错误也仍将出现,比如在单击 Data 控件按钮时,或在通过与被绑定的控件交互作用,以改变当前记录的时候。如果这样的一个操作导致了数据访问错误,则将引发 Error 事件。
不为该事件添加代码,这等效于将 response 参数设置为 0。
注意 用 ErrorText 属性来检索要显示的错误字符串。
=======
【名称】
Error(数据报表设计器)
【类别】
事件过程
【原形】
Private Sub object_Error(JobType As AsyncTypeConstants, Cookie As Long, ErrObj As RptError, ShowError As Boolean)
【参数】
Error事件的语法包含如下部分:
部分
【描述】
object
必需的。一个对象表达式,其值为“应用于”列表中的一个对象。
JobType
返回操作类型,如在设置值中所示。
Cookie
返回操作的ID。该ID在一个异步方法(如ExportReport或PrintReport)被调用时设置。
ErrObj
返回错误号。
ShowError
设定一个值,指定是否显示错误对话框。
对JobType的设置如下:
常数
值
【描述】
rptAsyncPreview
0
报表正在处理一个预览操作。
rptAsyncPrint
1
报表正在处理一个打印操作。
rptAsyncReport
2
报表正在处理一个导出报表操作。
【描述】
当错误中止一个操作时发生。
【示例】
无
【备注】
无
=======
【名称】
Exp
【类别】
数学函数
【原形】
Exp(number)
【参数】
必选的,number 参数是一个 Double 或任何有效的数值表达式
【返回值】
Double类型
【异常/错误】
无
【描述】
返回一个指定 e(自然对数的底,e 的值为2.71828)的某次方。
【示例】
' 本示例使用 Exp 函数计算 e的某次方。
Dim MyAngle, MyHSin
' 定义角度(以“弧度”为单位)。
MyAngle = 1.3
' 计算双曲正弦函数值(sin())。
MyHSin = (Exp(MyAngle) - Exp(-1 * MyAngle)) / 2
【备注】
如果 number 的值超过 709.782712893,则会导致错误发生。常数 e 的值大约是 2.718282。注意:Exp 函数的作用和 Log 的作用互补,所以有时也称做反对数。
=======
【名称】
FileAttr
【类别】
磁盘、文件、目录函数
【原形】
或 FileAttr(文件号、文件属性)
【参数】
必选的。Number参数是一个任何有效的数值型表达式
【返回值】
同 number 的类型
【异常/错误】
无
【描述】
获取被打开文件的模式或操作系统文件句柄的信息,即文件类型信息。
【示例】
【备注】
(1)[文件号]参数是用Open语句打开文件时给定的文件序号,以指明该函数获取哪个被打开文件的属性。
(2)[文件属性]参数为整型数据,该参数用以规定函数获取什么样的文件类型信息。当该值为1时,函数获取该文件被打开时设定的模式,如表9.3所示。当该值为2时,函数获取一个由Windows环境分配给该文件的文件句柄号,可以将此文件句柄用于Windows应用程序接口(APl)函数中。
表9.3 文件属性参数为1时的函数获取值
函数值
文件的打开模式
函数值
文件的打开模式
1
Input输入模式
8
Append追加模式
2
Output输出模式
32
Binary二进制模式
4
Random Access随机访问模式
返回一个 Long,表示使用 Open 语句所打开文件的文件方式。
【原形】
FileAttr(filenumber, returntype)
FileAttr 函数的语法具有以下几个命名参数:
部分
【描述】
filenumber
必要。Integer 类型,任何有效的文件号。
returntype
必要。Integer 类型。它是数字,指出返回信息的类型。指定 1 则可返回一个代表文件方式的数值。而仅仅在 16 位系统中, 指定 2 才可以恢复操作系统的文件句柄。在 32 位系统中不支持 Returntype 2,它会导致错误发生。
【返回值】
当 returntype 参数值为 1 时,下列返回值指出文件访问方式:
方式
值
Input
1
Output
2
Random
4
Append
8
Binary
32
本示例使用 FileAttr 函数来返回一个已打开文件的文件模式以及文件句柄。返回文件句柄只适用于 16位系统; 在 32位 系统中, 把 2 作为第二个参数时将产生错误。
Dim FileNum, Mode, Handle
FileNum = 1 ' 指定文件号。
Open "TESTFILE" For Append As FileNum ' 打开文件。
Mode = FileAttr(FileNum, 1) ' 返回 8(增加文件方式)。
Handle = FileAttr(FileNum, 2) ' 返回文件句柄。
Close FileNum ' 关闭文件。
=======
【名称】
FileDateTime
【类别】
磁盘、文件、目录函数
【原形】
或 FileDateTime(文件名)
【参数】
必选的。Number参数是一个任何有效的数值型表达式
【返回值】
同 number 的类型
【异常/错误】
无
【描述】
获取[文件名]参数指定的文件被创建或最后被修改的日期与时间,获取值为变体型的日期型数据。[文件名]参数可以包含目录或文件夹、以及驱动器。
【示例】
【备注】
返回一个 Variant (Date),此为一个文件被创建或最后修改后的日期和时间。
【原形】
FileDateTime(pathname)
必要的 pathname 参数是用来指定一个文件名的字符串表达式。pathname 可以包含目录或文件夹、以及驱动器。
本示例使用 FileDateTime 函数来得知文件创建或最近修改的日期与时间。日期与时间的显示格式依系统的地区设置而定。
Dim MyStamp
' 假设 TESTFILE 上次被修改的时间为 1993 年 2 月 12 日下午 4 时 35 分 47 秒。
' 假设 English/U.S. 地区设置。
MyStamp = FileDateTime("TESTFILE")Filedatetime("TESTFILE") ' 返回“2/12/93 4:35:47 PM”。
=======
【名称】
FileLen
【类别】
磁盘、文件、目录函数
【原形】
FileLen(pathname)
或 FileLen(文件名)
【参数】
必选的。pathname (文件名)参数是用来指定一个文件名的字符串表达式。pathname 可以包含目录或文件夹、以及驱动器的全程路径信息。该函数中给出的文件名是已打开的文件,则函数获取的文件长度是该文件打开之前的长度。
【返回值】
返回一个 Long类型。
【异常/错误】
无
【描述】
获取[文件名]所指定的未打开文件的字节长度。代表一个文件的长度,单位是字节。
【示例】
本示例使用 FileLen 来返回文件的字节长度。示例中假设 TESTFILE 为含有数据的文件。
Dim MySize
MySize = FileLen("TESTFILE")Filelen("TESTFILE") ' 返回文件的字节长度。
【备注】
当调用 FileLen 函数时,如果所指定的文件已经打开,则返回的值是这个文件在打开前的大小。
注意:若要取得一个打开文件的长度大小,使用 LOF 函数。
=======
【名称】
Fix
【类别】
数学函数
【原形】
Fix (number)
【参数】
必选的,number 参数是一个 Double 或任何有效的数值表达式
【返回值】
Integer 类型
【异常/错误】
无
【描述】
将number的小数部分截去,求其整数部分,例如:Fix(3.8)=3,Fix(-3.8)=-3。
【示例】
Dim MyNumber
MyNumber = Fix(99.2) ' 返回 99。
MyNumber = Fix(-99.8) ' 返回 -99。
MyNumber = Fix(-99.2) ' 返回 -99。
【备注】
如果 number 包含 Null,则返回 Null。
=======
【名称】
Format
【类别】
转换函数
【原形】
Format(expression[, format[, firstdayofweek[, firstweekofyear]]])
【参数】
Format 函数的语法具有下面几个部分:
部分
说明
expression
必选参数。任何有效的表达式。
format
可选参数。有效的命名表达式或用户自定义格式表达式。
firstdayofweek
可选参数。常数,表示一星期的第一天。
firstweekofyear
可选参数。常数,表示一年的第一周。
设置值
firstdayofweek 参数有下面设置:
常数
值
说明
vbUseSystem
0
使用 NLS API 设置。
VbSunday
1
星期日(缺省)
vbMonday
2
星期一
vbTuesday
3
星期二
vbWednesday
4
星期三
vbThursday
5
星期四
vbFriday
6
星期五
vbSaturday
7
星期六
firstweekofyear 参数有下面设置:
常数
值
说明
vbUseSystem
0
使用 NLS API 设置。
vbFirstJan1
1
从包含一月一日的那一周开始(缺省)。
vbFirstFourDays
2
从本年第一周开始,而此周至少有四天在本年中。
VbFirstFullWeek
3
从本年第一周开始,而此周完全在本年中。
说明
格式化
作法
数字
使用预先定义的命名数值格式或创建用户自定义数值格式。
日期和时间
使用预先定义的命名日期/时间格式或创建用户自定义日期/时间格式。
日期和时间序数
使用日期和时间格式或数值格式。
字符串
创建自定义的字符串格式。
如果在格式化数字时没有指定 format,Format 会提供与 Str 函数类似的功能,尽管它是国际化的。然而,以 Format 作用在正数上不会保留正负号空间,而以 Str 的话则会。
【返回值】
返回 Variant (String)
【异常/错误】
无
【描述】
返回 Variant (String),其中含有一个表达式,它是根据格式表达式中的指令来格式化的。
【示例】
本示例显示用 Format 函数做格式化输出的不同用法。对于日期分隔号(/),时间分隔号(:),以及 AM/ PM 等文本而言,其真正的显示格式会因计算机上的国际标准不同而有所差异。在开发阶段,日期与时间是以短日期的格式,配合代码的国际标准来显示的。而在运行时,短日期则是根据系统的国际标准而定,而系统的国际标准和代码的国际标准可能并不相同。本示例中是假设国际标准为 English/United States。
MyTime 及 MyDate 在开发环境下,使用系统的短日期设置显示出来的。
Dim MyTime, MyDate, MyStr
MyTime = #17:04:23#
MyDate = #January 27, 1993#
' 以系统设置的长时间格式返回当前系统时间。
MyStr = Format(Time, "Long Time")
' 以系统设置的长日期格式返回当前系统日期。
MyStr = Format(Date, "Long Date")
MyStr = Format(MyTime, "h:m:s") ' 返回 "17:4:23"。
MyStr = Format(MyTime, "hh:mm:ss AMPM") ' 返回 "05:04:23 PM"。
MyStr = Format(MyDate, "dddd, mmm d yyyy") ' 返回 "Wednesday, Jan 27 1993"。
' 如果没有指定格式,则返回字符串。
MyStr = Format(23) ' 返回 "23"。
' 用户自定义的格式。
MyStr = Format(5459.4, "##,##0。00") ' 返回 "5,459.40"。
MyStr = Format(334。9, "###0。00") ' 返回 "334.90"。
MyStr = Format(5, "0。00%") ' 返回 "500.00%"。
MyStr = Format("HELLO", "<") ' 返回 "hello"。
MyStr = Format("This is it", ">") ' 返回 "THIS IS IT"。
【备注】
=======
【名称】
Format
【类别】
格式输出函数
【原形】
Format(expression[, format[, firstdayofweek[, firstweekofyear]]])
或Format$(表达式[,”格式化符号”])
【参数】
表达式是要格式化的数值、日期和字符串类型表达式。格式化符号是表示输出表达式值时所采用的输出格式。格式化符号要用引号括起来。
Format 函数的语法具有下面几个部分:
部分
说明
expression
必要参数。任何有效的表达式。
format
可选参数。有效的命名表达式或用户自定义格式表达式。
firstdayofweek
可选参数。常数,表示一星期的第一天。
firstweekofyear
可选参数。常数,表示一年的第一周。
设置值
firstdayofweek 参数有下面设置:
常数
值
说明
vbUseSystem
0
使用 NLS API 设置。
VbSunday
1
星期日(缺省)
vbMonday
2
星期一
vbTuesday
3
星期二
vbWednesday
4
星期三
vbThursday
5
星期四
vbFriday
6
星期五
vbSaturday
7
星期六
firstweekofyear 参数有下面设置:
常数
值
说明
vbUseSystem
0
使用 NLS API 设置。
vbFirstJan1
1
从包含一月一日的那一周开始(缺省)。
vbFirstFourDays
2
从本年第一周开始,而此周至少有四天在本年中。
VbFirstFullWeek
3
从本年第一周开始,而此周完全在本年中。
说明
格式化
作法
数字
使用预先定义的命名数值格式或创建用户自定义数值格式。
日期和时间
使用预先定义的命名日期/时间格式或创建用户自定义日期/时间格式。
日期和时间序数
使用日期和时间格式或数值格式。
字符串
创建自定义的字符串格式。
如果在格式化数字时没有指定 format,Format 会提供与 Str 函数类似的功能,尽管它是国际化的。然而,以 Format 作用在正数上不会保留正负号空间,而以 Str 的话则会。
【返回值】
返回 Variant (String),其中含有一个表达式,它是根据格式表达式中的指令来格式化的。
【异常/错误】
无
【描述】
用格式输出函数Format$可以使数值、日期或字符串按指定的格式输出,一般用于Print方法中。
(1)数值格式化:它是将数值型表达式的值按[格式化符号]指定的格式输出。有关格式化符号及其应用举例如表2.12所示。注意:对于符号0与#,若要显示的数值表达式的整数部分位数多于格式化符号的位数,则按实际数值显示,若小数部分的位数多于格式化符号的位数,则四舍五入显示。
表2.12 数值格式化的格式化符号及其作用
符号
作 用
数值表达式
格式化字符串
显示结果
0
实际数字小于符号位数时,数字前后加0
1234.567
1234.567
“00000.0000”
“000.0”
01234.5670
1234.6
#
实际数字小于符号位数时,数字前后不加0
1234.567
1234.567
“#####.####”
“###.#”
1234.567
1234.6
.
加小数点
12345
“00000.00”
12345.00
,
千分位
1234.567
“##,##0.0000”
1,234.5670
%
数值乘以100,加百分号
1234.567
“####.##%”
12345.67%
$
在数字前强加[$]号
1234.567
“$####.#”
$1234.6
+
在数字前强加[+]号
1234.567
“+####.#”
+1234.6
1
在数字前强加[-]号
-1234.567
“-####.#”
-1234.6
E+
用指数表示
0.1234
“0.00E+00”
1.23E-01
E-
用指数表示
1234.567
“.00E-00”
12E04
(2)日期和时间格式化:它是将日期型表达式或数值型表达式的值转换为日期、时间的序数值,并按[格式化符号]指定的格式输出。有关格式化符号及其应用举例如表2.12所示。
其中,分钟的格式化符号m、mm与月份的格式化符号相同,区分的方法:是跟在h、hh后的为分钟,否则为月份。非格式化符号一、/、:等照原样显示。
表2.13 日期和时间格式化的格式化符号及其作用
格式化符号
作 用
格式化符号
作 用
d
显示日期(1-3),个位前不加0
dd
显示日期(01-31),个位前加0
ddd
显示星期的缩写(Sun~Sat)
dddd
显示星期全名(Sunday~Saturday)
ddddd
显示完整日期(日、月、年),默认格式为mm/dd/yy
W
星期为数字(1~7,1是星期日)
WW
一年中的星期数(1~53)
m
显示月份(1~12),个位前不加0
mm
显示月份(01~12),个位前加0
mmm
显示月份缩写(Jan~Dec)
mmmm
月份全名(January~December)
y
显示一年中的天数(1~366)
yy
两位数显示年份(00~99)
yyyy
四位数显示年份(0100~9999)
q
显示季度数(1~4)
h
显示小时(0~23),个位前不加0
hh
显示小时(00~23),个位前加0
m
在h后显示分(0~59),个位前不加0
mm
在h后显示分(00~59),个位前加0
s
显示秒(0~59),个位前不加0
ss
显示秒(00~59),个位前加0
ttttt
显示完整时间(小时、分和秒)
默认格式为hh:mm:ss
AM/PM
Am/pm
12小时的时钟,中午前AM或am中午后PM或pm
A/P或a/p
显示12小时的时钟,中午前A或a中午后P或p
【示例】
本示例显示用 Format 函数做格式化输出的不同用法。对于日期分隔号(/),时间分隔号(:),以及 AM/ PM 等文本而言,其真正的显示格式会因计算机上的国际标准不同而有所差异。在开发阶段,日期与时间是以短日期的格式,配合代码的国际标准来显示的。而在运行时,短日期则是根据系统的国际标准而定,而系统的国际标准和代码的国际标准可能并不相同。本示例中是假设国际标准为 English/United States。
MyTime 及 MyDate 在开发环境下,使用系统的短日期设置显示出来的。
Dim MyTime, MyDate, MyStr
MyTime = #17:04:23#
MyDate = #January 27, 1993#
' 以系统设置的长时间格式返回当前系统时间。
MyStr = Format(Time, "Long Time")
' 以系统设置的长日期格式返回当前系统日期。
MyStr = Format(Date, "Long Date")
MyStr = Format(MyTime, "h:m:s") ' 返回 "17:4:23"。
MyStr = Format(MyTime, "hh:mm:ss AMPM") ' 返回 "05:04:23 PM"。
MyStr = Format(MyDate, "dddd, mmm d yyyy") ' 返回 "Wednesday, Jan 27 1993"。
' 如果没有指定格式,则返回字符串。
MyStr = Format(23) ' 返回 "23"。
' 用户自定义的格式。
MyStr = Format(5459.4, "##,##0。00") ' 返回 "5,459.40"。
MyStr = Format(334。9, "###0。00") ' 返回 "334.90"。
MyStr = Format(5, "0。00%") ' 返回 "500.00%"。
MyStr = Format("HELLO", "<") ' 返回 "hello"。
MyStr = Format("This is it", ">") ' 返回 "THIS IS IT"。
【备注】
=======
【名称】
FreeFile
【类别】
磁盘、文件、目录函数
【原形】
或 FreeFile[(范围)]
【参数】
必选的。Number参数是一个任何有效的数值型表达式
【返回值】
同 number 的类型
【异常/错误】
无
【描述】
提供一个尚未使用的文件号,即空闲的文件通道号。
【示例】
【备注】
(1)可选的[范围]参数是一个变量,它指定一个范围,以便返回该范围之内的下一个可用文件号。指定 0(缺省值)则返回一个介于 1到255 之间的文件号。指定 1 则返回一个介于 256 到511 之间的文件号。
(2)不可以在Open语句中直接是用该函数,应将该函数赋值给一个变量,然后在Open语句中使用该变量。函数值是整型数据。
返回一个 Integer,代表下一个可供 Open 语句使用的文件号。
【原形】
FreeFile[(rangenumber)]
可选的参数 rangenumber 是一个 Variant,它指定一个范围,以便返回该范围之内的下一个可用文件号。指定 0(缺省值)则返回一个介于 1 – 255 之间的文件号。指定 1 则返回一个介于 256 – 511 之间的文件号。
说明
使用 FreeFile 提供一个尚未使用的文件号。
本示例使用 FreeFile 函数来返回下一个可用的文件号。在循环中,共打开五个输出文件,并在每个文件中写入一些数据。
Dim MyIndex, FileNumber
For MyIndex = 1 To 5 ' 循环五次。
FileNumber = FreeFile ' 取得未使用的文件号。
Open "TEST" & MyIndex For Output As #FileNumber ' 创建文件名。
Write #FileNumber, "This is a sample." ' 输出文本至文件中。
Close #FileNumber ' 关闭文件。
Next MyIndex
=======
【名称】
GetAttr
【类别】
磁盘、文件、目录函数
【原形】
或 GetAttr(文件名)
【参数】
必选的。Number参数是一个任何有效的数值型表达式
【返回值】
同 number 的类型
【异常/错误】
无
【描述】
获取[文件名]参数指定的文件、目录和卷标的属性,如下表所示。
表9.4 函数获取值及对应文件属性
值
文 件 属 性
常 量 表 示(CONSTANT.XT)
0
Normal普通文件
ATTR—NORMAL
1
ReadOnly只读文件
ATTR—READONLY
2
Hidden隐含文件
ATTR—HIDDEN
4
System系统文件
ATTR—SYSTEM
8
Volume Label卷标号
ATTR—VOLUME
16
MS-DOS directory目录
ATTR—DIRECTORY
32
Archive存档文件
ATTR—ARCHIVE
【示例】
【备注】
函数获取值可以是上述值的相加组合,表示文件具有几个属性的组合。如只读隐含文件,函数获取值为3。文件名为字符串表达式,包含文件名、路径名或卷标。该函数值为整型数据。
=======
【名称】
GotFocus
【类别】
事件过程
【原形】
Private Sub Form_GotFocus( )
Private Sub object_GotFocus([index As Integer])
【参数】
GotFocus 事件包含下列部分:
部分
【描述】
object
一个对象表达式,其值是“应用于”列表中的一个对象。
index
一个整数,用来唯一地标识一个在控件数组中的控件。
【描述】
当对象获得焦点时产生该事件;获得焦点可以通过诸如 TAB 切换,或单击对象之类的用户动作,或在代码中用 SetFocus 方法改变焦点来实现。
【示例】
本例在 OptionButton 组中的一个按钮得到焦点时显示一个状态栏信息。要尝试这个例子,可将代码粘贴到一个包含 2 个 OptionButton 控件和 1 个 Label 的窗体的声明部分。将两个 OptionButton 控件的 Name 属性都设置为 OptionGroup,然后按 F5 键并单击 OptionButton 控件。
Private Sub Form_Load ()
Label1.AutoSize = True
End Sub
Private Sub OptionGroup_GotFocus (Index As Integer)
Select Case Index
Case 0
Label1.Caption = "Option 1 has the focus."
Case 1
Label1.Caption = "Option 2 has the focus."
End Select
End Sub
Private Sub OptionGroup_LostFocus (Index As Integer)
Label1.Caption = ""
End Sub
【备注】
通常,GotFocus 事件过程用以指定当控件或窗体首次接收焦点时发生的操作。例如,通过给窗体上每个控件附加一个 GotFocus 事件过程,就可以显示简要说明或状态条信息给外界提供指导。根据获取焦点控件的不同,通过使其有效、禁止或者是显示其它控件的方式,也可以提供出可视的提示。
注意 一个控件仅当其 Enabled 和 Visible 属性都设置为 True 时才能接收焦点。为了移动焦点,在 Visual Basic 中要自定义键盘接口,对于窗体上的控件需设置 Tab 键顺序或指定访问键。
=======
【名称】
GotFocus
【类别】
事件过程
【原形】
Private Sub Form_GotFocus( )
Private Sub object_GotFocus([index As Integer])
【参数】
GotFocus 事件参数包含下列部分:
部分
【描述】
object
一个对象表达式,其值是“应用于”列表中的一个对象。
index
一个整数,用来唯一地标识一个在控件数组中的控件。
【描述】
当对象获得焦点时产生该事件;获得焦点可以通过诸如 TAB 切换,或单击对象之类的用户动作,或在代码中用 SetFocus 方法改变焦点来实现。
【示例】
本例在 OptionButton 组中的一个按钮得到焦点时显示一个状态栏信息。要尝试这个例子,可将代码粘贴到一个包含 2 个 OptionButton 控件和 1 个 Label 的窗体的声明部分。将两个 OptionButton 控件的 Name 属性都设置为 OptionGroup,然后按 F5 键并单击 OptionButton 控件。
Private Sub Form_Load ()
Label1.AutoSize = True
End Sub
Private Sub OptionGroup_GotFocus (Index As Integer)
Select Case Index
Case 0
Label1.Caption = "Option 1 has the focus."
Case 1
Label1.Caption = "Option 2 has the focus."
End Select
End Sub
Private Sub OptionGroup_LostFocus (Index As Integer)
Label1.Caption = ""
End Sub
【备注】
通常,GotFocus 事件过程用以指定当控件或窗体首次接收焦点时发生的操作。例如,通过给窗体上每个控件附加一个 GotFocus 事件过程,就可以显示简要说明或状态条信息给外界提供指导。根据获取焦点控件的不同,通过使其有效、禁止或者是显示其它控件的方式,也可以提供出可视的提示。
注意:一个控件仅当其 Enabled 和 Visible 属性都设置为 True 时才能接收焦点。为了移动焦点,在 Visual Basic 中要自定义键盘接口,对于窗体上的控件需设置 Tab 键顺序或指定访问键。
=======