标题:按键精灵之VBScript 基本函数

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

时间:2007/7/25 21:14:47

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

内容:

第三章 VBScript 基本函数

    函数,简单的说,可以看成是一个表达式,输入一个值给函数,函数就会返回结果值(也有的函数没有返回值)。例如:函数 A(B) = C 代表名称为 A 的函数,当输入 B 值给 A 函数时,函数经过执行后会返回结果值 C ,这就是函数最基本的运用方式。

    在 VBScript 中有相当多的函数可以用,使用这些函数的时候,不必知道,也不必看到这些函数到底如何处理所输入的参数,我们只要知道然后去使用这些函数就可以了。

    下面,我将给大家分类介绍各函数的使用方法。

一 与数字运算有关的函数

   

    ■  Abs 函数

   

    返回数字的绝对值。

   
    Abs(number)
   
    number 参数可以是任意有效的数值表达式。

    如果 number 包含 Null,则返回 Null

    如果是未初始化变量,则返回 0。
   
    说明   

    数字的绝对值是其无符号的数值大小。例如,Abs(-1)Abs(1) 都返回 1。
   
    下面示例利用 Abs 函数计算数字的绝对值:
   
    Dim MyNumber   
    MyNumber = Abs(50.3 )      '返回 50.3。   
    MyNumber = Abs(-50.3)      '返回 50.3。   

    ■  Sgn 函数       

    返回表示数字符号的整数。
   
    Sgn(number)
   
    number 参数可以是任意有效的数值表达式。
   
    返回值    Sgn 函数有如下返回值: [tr]       如果 number 为          Sgn返回[/tr]
大于零 1
等于零 0
小于零 -1
       
     说明
   
    number 参数的符号决定 Sgn 函数的返回值。
   
    下面的示例利用 Sgn 函数决定数值的符号:
     
    Dim MyVar1, MyVar2, MyVar3, MySign   
    MyVar1 = 12: MyVar2 = -2.4: MyVar3 = 0   
    MySign = Sgn(MyVar1)   ' 返回 1。   
    MySign = Sgn(MyVar2)   ' 返回 -1。
    MySign = Sgn(MyVar3)   ' 返回 0。

    ■  Hex 函数

    返回表示十六进制数字值的字符串。

    Hex(number)

    number 参数是任意有效的表达式。

    说明

    如果 number 参数不是整数,则在进行运算前将其四舍五入为最接近的整数。
[tr]   如果 number 是                    Hex 返回[/tr]
Null Null。
Empty 零 (0)。
其他数 最大到八位的十六进制字符。

    您可以通过在数字前面添加前缀 &H 来表示十六进制数。例如,在十六进制计数法中,&H10 表示十进制数     16。

    下面的示例利用 Hex 函数返回数字的十六进制数:
   

    Dim MyHexMyHex = Hex(5)   ' 返回 5。
    MyHex = Hex(10)   ' 返回A。
    MyHex = Hex(459)   ' 返回 1CB。

    ■ Oct 函数

    返回表示数字八进制值的字符串。

    Oct(number)

    number 参数是任意有效的表达式。

    说明

    如果 number 参数不是整数,则在进行运算前,将其四舍五入到最接近的整数。
[tr]如果 number 是              Oct 返回[/tr]
Null Null。
Empty 零 (0)。
任意其他数字 最大可到 11 位的八进制字符。
用户也可以通过直接在数前加上 &O 表示八进制数。例如,&O10 为十进制数 8 的八进制表示法。

    下面的示例利用 Oct 函数返回数值的八进制数:

    Dim MyOctMyOct = Oct(4)     ' 返回 4。
    MyOct = Oct(8)     ' 返回 10。
    MyOct = Oct(459)   ' 返回 713。

    ■  Sqr 函数

    返回数值的平方根。

    Sqr(number)

    number 参数可以是任意有效的大于或等于零的数值表达式。

    说明

    下面的示例利用 Sqr 函数计算数值的平方根:

    Dim MySqrMySqr = Sqr(4)   ' 返回 2。
    MySqr = Sqr(23)   ' 返回4.79583152331272。
    MySqr = Sqr(0)   ' 返回0。
    MySqr = Sqr(-4)   ' 产生实时错误。

    ■  Int ,Fix 函数

    返回数字的整数部分。

    Int(number)
    Fix(number)

    number 参数可以是任意有效的数值表达式。如果 number 参数包含 Null,则返回 Null

    说明

    IntFix 函数都删除 number 参数的小数部分并返回以整数表示的结果。
    IntFix 函数的区别在于如果 number 参数为负数时,Int 函数返回小于或等于 number 的第一个负整数,而 Fix 函数返回大于或等于 number 参数的第一个负整数。例如,Int 将 -8.4 转换为 -9,而 Fix 函数将 -8.4 转换为 -8。

    Fix(number) 等同于:
    Sgn(number) * Int(Abs(number))

    下面的示例说明 IntFix 函数如何返回数字的整数部分:

    MyNumber = Int(99.8)    ' 返回 99。
    MyNumber = Fix(99.2)    ' 返回 99。
    MyNumber = Int(-99.8)   ' 返回 -100。
    MyNumber = Fix(-99.8)   ' 返回-99。
    MyNumber = Int(-99.2)   ' 返回 -100。
    MyNumber = Fix(-99.2)   ' 返回 -99。

    ■  Round 函数

    返回按指定位数进行四舍五入的数值。

    Round(expression[, numdecimalplaces])

    参数Expression 必选项。数值表达式被四舍五入。
    Numdecimalplaces 可选项。数字表明小数点右边有多少位进行四舍五入。如果省略,则 Round 函数返回整数。

    说明

    下面的示例利用 Round 函数将数值四舍五入到两位小数:

    Dim MyVar, pi
    pi = 3.14159
    MyVar = Round(pi, 2)  ' 返回  3.14。

    ■  Log 函数

    返回数值的自然对数。

    Log(number)

    number 参数是任意大于 0 的有效数值表达式。

    说明

    自然对数是以 e 为底的对数。常数 e 的值约为 2.718282。
    用 n 的自然对数除 x 的自然对数,可以得到以 n 为底的 x 的对数。如下所示:
    Logn(x) = Log(x) / Log(n)

    以下示例为一个自定义的 Function 过程,该过程计算以 10 为底的对数:
   
    Function Log10(X)   
          Log10 = Log(X) / Log(10)
    End Function

    ■  Exp 函数

    返回 e(自然对数的底)的幂次方。

    Exp(number)

    number 参数可以是任意有效的数值表达式。

    说明

    如果 number 参数超过 709.782712893,则出现错误。常数 e 的值约为 2.718282。
    注意   Exp 函数完成 Log 函数的反运算,并且有时引用为反对数形式。

    下面的示例利用 Exp 函数返回 e 的幂次方:

    Dim MyAngle, MyHSin   ' 用弧度定义角。
    MyAngle = 1.3   ' 计算双曲线的正弦。
    MyHSin = (Exp(MyAngle) - Exp(-1 * MyAngle)) / 2

    ■  三角函数 Sin 、Cos 、Tan 、Atn

    Sin(number)    正弦
    Cos(number)    余弦
    Tan(number)    正切
    Atn(number)    反正切

    number 参数可以是任何将某个角表示为弧度的有效数值表达式。

    说明

    将角度乘以 pi/180 即可转换为弧度,将弧度乘以 180/pi 即可转换为角度。

    示例:

    Dim MyAngle, MyCotangent
    MyAngle = 1.3   ' 用弧度定义角度。
    MyCosecant = 1 / Sin(MyAngle)   '计算余割。
    MySecant = 1 / Cos(MyAngle)  ' 计算正割。
    MyCotangent = 1 / Tan(MyAngle)   ' 计算余切。

   


二 与字符串处理有关的函数

    ■  Len 函数

     
返回字符串内字符的数目,或是存储一变量所需的字节数。

    Len(string | varname)

    参数
    sring 任意有效的字符串表达式。如果 string 参数包含 Null,则返回 Null
    Varname 任意有效的变量名。如果 varname 参数包含 Null,则返回 Null

    说明

    下面的示例利用 Len 函数返回字符串中的字符数目:

    Dim MyStringMyString = Len("VBSCRIPT") 'MyString 包含 8。

   
    ■  Mid  函数

    从字符串中返回指定数目的字符。

    Mid(string, start[, length])

    参数
    string 字符串表达式,从中返回字符。如果 string 包含 Null,则返回 Null
    Start   string 中被提取的字符部分的开始位置。如果 start 超过了 string 中字符的数目,Mid 将返回零长度字符串 ("")。
    Length 要返回的字符数。如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到字符串结束的所有字符。 说明要判断 string 中字符的数目,可使用 Len 函数。

    下面的示例利用 Mid 函数返回字符串中从第四个字符开始的六个字符:
   

    Dim MyVarMyVar = Mid("VB脚本is fun!", 4, 6) 'MyVar 包含 "Script"。

    ■  Left 函数

   
返回指定数目的从字符串的左边算起的字符。

    Left(string, length)

    参数
    string 字符串表达式,其最左边的字符被返回。如果 string 参数中包含 Null,则返回 Null
    Length 数值表达式,指明要返回的字符数目。如果是 0,返回零长度字符串 ("");如果大于或等于 string 参数中的字符总数,则返回整个字符串。 说明可使用 Len 函数确定 string 参数中的字符数目。

    下面的示例利用Left 函数返回MyString 的左边三个字母:
   

    Dim MyString, LeftString
    MyString = "VBSCript"
    LeftString = Left(MyString, 3) 'LeftString 包含 "VBS"。

    ■  Right 函数

   
从字符串右边返回指定数目的字符。
   

    Right(string, length)

    参数
    string 字符串表达式,其最右边的字符被返回。如果 string 参数中包含 Null,则返回 Null
    Length 数值表达式,指明要返回的字符数目。如果为 0,返回零长度字符串;如果此数大于或等于 string 参数中的所有字符数目,则返回整个字符串。 说明要确定 string 参数中的字符数目,使用 Len 函数。

    下面的示例利用 Right 函数从字符串右边返回指定数目的字符:

    Dim AnyString, MyStr
    AnyString = "Hello World"      ' 定义字符串。
    MyStr = Right(AnyString, 1)    ' 返回 "d"。
    MyStr = Right(AnyString, 6)    ' 返回 " World"。
    MyStr = Right(AnyString, 20)   ' 返回 "Hello World"。

    ■  LCase 函数

    返回字符串的小写形式。

    LCase(string)

    string 参数是任意有效的字符串表达式。如果 string 参数中包含 Null,则返回 Null

    说明仅大写字母转换成小写字母;所有小写字母和非字母字符保持不变。

    下面的示例利用 LCase 函数把大写字母转换为小写字母:

    Dim MyString
    Dim LCaseString
    MyString = "VBSCript"
    LCaseString = LCase(MyString)   ' LCaseString 包含 "vbscript"。

    ■  UCase 函数

    返回字符串的大写形式。

    UCase(string)

    string 参数是任意有效的字符串表达式。如果 string 参数中包含 Null,则返回 Null

    说明

    只有小写字母被转换成大写字母;所有大写字母和非字母字符均保持不变。

    下面的示例利用 UCase 函数返回字符串的大写形式:

     Dim MyWord
     MyWord = UCase("Hello World")   ' 返回"HELLO WORLD"。

    ■  Trim 、Ltrim 、Rtrim 函数

    返回不带前导空格 (LTrim)、后续空格 (RTrim) 或前导与后续空格 (Trim) 的字符串副本。

    LTrim(string)
    RTrim(string)
    Trim(string)

    string 参数是任意有效的字符串表达式。如果 string 参数中包含 Null,则返回 Null

    说明

    下面的示例利用 LTrim, RTrim, 和 Trim 函数分别用来除去字符串开始的空格、尾部空格、 开始和尾部空格:

    Dim MyVar
    MyVar = LTrim("   vbscript ")   'MyVar 包含 "vbscript "。
    MyVar = RTrim("   vbscript ")   'MyVar 包含 "   vbscript"。
    MyVar = Trim("   vbscript ")   'MyVar 包含 "vbscript"。

    ■  Replace 函数

    返回字符串,其中指定数目的某子字符串被替换为另一个子字符串。

    Replace(expression, find, replacewith[, compare[, count[, start]]])

   
    expression 必选项。字符串表达式包含要替代的子字符串。
    Find 必选项。被搜索的子字符串。
    Replacewith 必选项。用于替换的子字符串。 S
    tart 可选项。expression 中开始搜索子字符串的位置。如果省略,默认值为 1。在和count 关联时必须用
    count 可选项。执行子字符串替换的数目。如果省略,默认值为 -1,表示进行所有可能的替换。在和 start 关联时必须用。
    Compare 可选项。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。如果省略,缺省值为 0 ,这意味着必须进行二进制比较。
   
    设置compare 参数可以有以下值:
[tr]         常数              值                                      描述[/tr]
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文本比较。

   
    返回值Replace 返回以下值: [tr]
                 如果                                                             Replace 返回
[/tr]
expression 为零长度 零长度字符串 ("")。
expression 为 Null 错误。
find 为零长度 expression 的副本。
replacewith 为零长度 expression 的副本,其中删除了所有由 find 参数指定的内容。
start > Len(expression) 零长度字符串。
count 为 0 expression 的副本。

    说明

    Replace 函数的返回值是经过替换(从由 start 指定的位置开始到 expression 字符串的结尾)后的字符串,而不是原始字符串从开始至结尾的副本。

    下面的示例利用 Replace 函数返回字符串:

    Dim MyString
    MyString = Replace("XXpXXPXXp", "p", "Y")   '二进制比较从字符串左端开始。返回 "XXYXXPXXY"。
    MyString = Replace("XXpXXPXXp", "p", "Y", '文本比较从第三个字符开始。返回 "YXXYXXY"。3,, -1, 1)

   
  InStr 函数

   
返回某字符串在另一字符串中第一次出现的位置。
   
    InStr([start, ]string1, string2[, compare])

    参数
    start 可选项。数值表达式,用于设置每次搜索的开始位置。如果省略,将从第一个字符的位置开始搜索。如果 start 包含 Null,则会出现错误。如果已指定 compare,则必须要有 start 参数。
    string1 必选项。接受搜索的字符串表达式。
    string2 必选项。要搜索的字符串表达式。
    compare 可选项。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。如果省略,将执行二进制比较。

    设置compare 参数可以有以下值: [tr]       常数                值                                      描述

[/tr]
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文本比较。

    返回值InStr 函数返回以下值: [tr]                   如果                                   InStr 返回

[/tr]
string1 为零长度 0
string1 为 Null Null
string2 为零长度 start
string2 为 Null Null
string2 没有找到 0
在 string1 中找到 string2 找到匹配字符串的位置
start > Len(string2) 0

    说明

    下面的示例利用 InStr 搜索字符串:

    Dim SearchString, SearchChar, MyPos
    SearchString ="XXpXXpXXPXXP"   ' 要搜索的字符串。
    SearchChar = "P"   ' Search for "P".
    MyPos = Instr(4, SearchString, SearchChar, 1)   ' 在位置 4 进行的文本比较。返回 6。
    MyPos = Instr(1, SearchString, SearchChar, 0)   ' 在位置 1 进行的二进制比较。返回 9。
    MyPos = Instr(SearchString, SearchChar)   ' 默认情况下,进行的是二进制比较(省略了最后的参数)。返回 9。
    MyPos = Instr(1, SearchString, "W")   ' 在位置 1 进行的二进制比较。返回 0(找不到 "W")。

    ■  InStrRev 函数

    返回某字符串在另一个字符串中出现的从结尾计起的位置。

    InStrRev(string1, string2, [start[, compare]])

    参数s
    tring1 必选项。接受搜索的字符串表达式。
    string2 必选项。被搜索的字符串表达式。
    Start 可选项。数值表达式,用于设置每次搜索的开始位置。如果省略,则默认值为 -1,表示从最后一个字符的位置开始搜索。如果 start 包含 Null,则出现错误
    compare 可选项。在计算子字符串时,指示要使用的比较类型的数值。如果省略,将执行二进制比较。有关数值,请参阅“设置”部分。

    设置compare 参数可以有以下值: [tr]
                 常数                        Value                                                     描述
[/tr]
vbBinaryCompare 0 执行二进制比较。
vbDatabaseCompare 2 执行基于包含在数据库(在此数据库中执行比较)中的信息的比较。
返回值InStrRev 返回以下值: [tr]               如果                      InStrRev 返回[/tr]
string1 为零长度 0
string1 为 Null Null
string2 为零长度 start
string2 为 Null Null
string2 没有找到 0
在 string1 中找到 string2 找到匹配字符串的位置
start > Len(string2) 0
说明

    下面的示例利用 InStrRev 函数搜索字符串:

    Dim SearchString, SearchChar, MyPos
    SearchString ="XXpXXpXXPXXP"   ' 要搜索的字符串。
    SearchChar = "P"   ' Search for "P".
    MyPos = InstrRev(SearchString, SearchChar, 10, 0)   ' 在位置 10 进行的二进制比较。返回 9。
    MyPos = InstrRev(SearchString, SearchChar, -1, 1)   ' 在最后位置进行的文本比较。返回 12。
    MyPos = InstrRev(SearchString, SearchChar, 8)   ' 默认情况下,进行的是二进制比较(省略最后的参数)。返回 0。

    ■  Space 函数

    返回由指定数目的空格组成的字符串。

    Space(number)

    number 参数为字符串中用户所需的空格数。

    说明

    下面的示例利用 Space 函数返回由指定数目空格组成的字符串:

    Dim MyStringMyString = Space(10)   ' 返回具有 10 个空格的字符串。
    MyString = "Hello" & Space(10) & "World" ' 在两个字符串之间插入 10 个空格。

    ■  String 函数

    返回具有指定长度的、重复字符组成的字符串。

    String(number, character)

    参数
    number 返回字符串的长度。如果 number 参数包含 Null,则返回 Null
    Character 指定字符或字符串表达式的字符代码,其中字符串表达式的第一个字符用于组成返回的字符串。如果 character 参数包含 Null,则返回 Null

    说明
   
    如果指定的 character 值大于 255,则 String 使用下列公式将该数转换成有效的字符代码:
    character Mod 256

    下面的示例利用 String 函数返回指定长度的由重复字符组成的字符串:

    Dim MyString
    MyString = String(5, "*")   ' 返回"*****"。
    MyString = String(5, 42)   ' 返回"*****"。
    MyString = String(10, "ABC")   ' 返回"AAAAAAAAAA"。

    ■  StrReverse 函数

    将字符串逆序排列

    StrReverse(string)

    示例:

    Dim MyString
    MyString=StrReverse("按键精灵") ' 返回 "灵精键按"

    ■ Split 函数

    返回基于 0 的一维数组,其中包含指定数目的子字符串。

    Split(expression[, delimiter[, count[, start]]])

    参数
    expression 必选项。字符串表达式,包含子字符串和分隔符。如果 expression 为零长度字符串,Split 返回空数组,即不包含元素和数据的数组。
    delimiter 可选项。用于标识子字符串界限的字符。如果省略,使用空格 ("") 作为分隔符。如果 delimiter 为零长度字符串,则返回包含整个 expression 字符串的单元素数组。
    count 可选项。被返回的子字符串数目,-1 指示返回所有子字符串。
    Compare 可选项。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。

    设置compare 参数可以有以下值:
[tr]
        常数             值                                    描述
[/tr]
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文本比较。

    说明

    下面的示例利用 Split 函数从字符串中返回数组。函数对分界符进行文本比较,返回所有的子字符串。

    Dim MyString, MyArray, Msg
    MyString = "VBScriptXisXfun!"
    MyArray = Split(MyString, "x", -1, 1)
        ' MyArray(0) 包含 "VBScript"。
        ' MyArray(1) 包含 "is"。
        ' MyArray(2) 包含 "fun!"。
    Msg = MyArray(0) & " " & MyArray(1)
    Msg = Msg   & " " & MyArray(2)
    MsgBox Msg



三 数据类型转换函数

    ■  CInt 函数
   
    CInt 是一种常用的数据类型转换函数,其功能就是把不同的数据类型转换成整数。当输入的数据类型不同时,CInt 函数会根据该数值的数据类型做相应的处理。

    ※  字符串

    当输入值是由数字字符组成的字符串时,函数就会将全部由数字字符组成的字符串转换成整数。如果字符串中由任何字符不是数字的话,执行会出现错误。但第一个字符可以是减号(-),表示这个数字是一个负数;而且,函数会自动去掉字符串中前后的空格符;另外,如果输入的字符串是空的,输出结果是 0 。

    CInt("123") = 123
    CInt("     -837    ") = -837
    CInt("") = 0

    ※  布尔数

    由于布尔数只有两种值,所以输出也只能是两种可能。

    CInt(True) = -1
    CInt(False) = 0

    ※  浮点数

    浮点数就是带由小数部分的数字,包括单精度小数和双精度小数。如果输入的参数是一个浮点数,输出的结果就会是一个四舍五入到个位的整数,就象对小数进行 Round 函数运算一样。

    CInt(8.5) = 8
    CInt(9.5) = 10
    CInt(-646.56465465) = -647

    ※  日期

    如果输入的参数是日期,输出是从公元  1899/12/31 开始算起,计算到所输入日期之间经过的天数。但由于整数的范围是 -32768~32767 ,所以,只要天数超过这个范围,也就是日期在 1989/9/16 之后或者在 1810/4/13 之前,在转换数据类型的时候就会出现溢位的错误。要解决这个问题,只要把日期的数据类型转换成长整数就可以了。(见后面的 CLng函数)

    CInt(#1900/1/1#) = 2
    CInt(#1823/4/5#) = -28028

    ※  时间

    若输入的数值是时间,输出的值就只有 0 和 1 。0 表示时间是上午,1 就表示时间是下午。

    CInt(#11:59:59#) = 0
    CInt(#12:00:01#) = 1

    ■  CStr 函数

    跟 CInt 函数相反,CStr 函数是把其他数据类型的值转换成字符串数据类型。

    ※  数字

    函数会把数字(包括整数及浮点数和布尔数,切正负都可以)转换成字符串类型输出

    CStr(123) = "123"
    CStr(-44.33) = "-44.33"
    CStr(True) = "True"

    ※  日期

    用函数将日期转换成字符串后,不管是哪种格式的日期,输出的值都会用 yyyy / mm / dd 的方式表示

    CStr(#June 25 1999#) = "1999/6/25"
    CStr(#July 4,89#) = "1989/7/4"
    CStr(#2000/2/2#) = "2000/2/2"

    ※  时间

    不管是哪种格式的时间,输出的值都会用 12 小时制  AM/PM hh:mm:ss 的方式表示

    CStr(#5:3:33#) = "AM 05:03:33"
    CStr(#6:13:51 PM#) = "PM 06:13:51"


    ■  CLng 函数

    把其他数据类型的数值转换成长整数。功能跟CInt 一样,布同的是长整数可以表达的范围比整数大很多,从 -2147486648~2147486647。用CInt 函数进行日期转换可能超出范围,用CLng函数就可以解决。

    ■  CBool 函数

    CBool 函数是把一个数值或表达式的结果转换成布尔数。

    ※  数字

    所有的数字,包括整数及浮点数,只有在数值等于0时才输出False,其他的情况都输出 True 。

    ※  字符串
   
    一般来说,布可以将字符串转换成布尔数,但是如果输入的字符串符合 CInt 函数的转换规则,可以被 CInt 转换成整数的时候,输入的字符串就可以利用 CBool 函数进行类型转换。

    ※  日期时间

    在输入的参数是日期或时间类型时,转换情况也类似输入字符串的转换情形。当输入的参数在 CInt 情况下为 0 的时候输出 False ,其余的时候则输出 True

    ※  扩展

    在使用CBool 函数时,不仅可以用来进行数据类型的转换,还可以用来判断一个表达式是否成立。它可以用在选择条件或流程控制的判断上

    CBool(3=5) = False
    CBool("a"="a") = True
    CBool(#1999/1/1#>#1999/1/2#) = False

    ■  CDate 函数

    可以将其他数据类型的变量转换成日期和时间类型。

    ※  整数

    当输入的参数是整数时,除了 0 会输出时间(午夜 12 点整)以外,其他的情况会输出一个格式为 yyyy/mm/dd的日期,而这个日期是从 1899/12/30 开始算,经过所输入整数天数后的日期。

    CDate(0) = #AM 12:00:00#
    CDate(-1) = #1899/12/29#

    ※  浮点数

    可以把浮点数分成两个部分,整数部分转换的方法就和整数转换一样;小数部分代表时间。假设输入的参数是 1.1 ,先看整数部分,1 代表 1899/12/31 这一天;而因为一天有 1440 分钟,乘上剩下的0.1 ,就是 1899/12/31再加上 144 分钟,也就是凌晨的 2 点 24 分了。如果还有更多位数的小数就继续细分下去,一直到秒为止。

    CDate(1.1) = #1899/12/31 AM 02:24:00#
    CDate(-45.3) = #1899/11/15 AM 07:12:00#

    ※  字符串

    当输入的参数是字符串的时候,和字符串转换为整数的道理一样,只要字符串的内容符合日期及时间的输入格式,就可以完整的转换成日期的数据类型;若类型布符合,就会出现错误。

    ※  布尔数

    只有两种情况

    CDate(True) = #1899/12/29#
    CDate(False) = #AM 12:00:00#
     
四  其他转换函数

    ■  CByte 函数

    可以把其他的数据类型转换成 Byte 类型。因为其值只能在 0~255 之间,所以只要输入的参数大于 255 或是小于 0 ,就会发生执行阶段错误。

    ■  CSng 函数

    把输入的数值转换成单精度类型:当程序中的某些计算结果过于复杂,需要精确到小数以下的十几位,就可以用这个函数把数值装换成单精度小数。

    ■  CDbl 函数

    与 CSng 函数相似,不同的是,CDbl 函数是把数值转换成双精度的数字。

第三章 VBScript 基本函数

    函数,简单的说,可以看成是一个表达式,输入一个值给函数,函数就会返回结果值(也有的函数没有返回值)。例如:函数 A(B) = C 代表名称为 A 的函数,当输入 B 值给 A 函数时,函数经过执行后会返回结果值 C ,这就是函数最基本的运用方式。

    在 VBScript 中有相当多的函数可以用,使用这些函数的时候,不必知道,也不必看到这些函数到底如何处理所输入的参数,我们只要知道然后去使用这些函数就可以了。

    下面,我将给大家分类介绍各函数的使用方法。

一 与数字运算有关的函数

   

    ■  Abs 函数

   

    返回数字的绝对值。

   
    Abs(number)
   
    number 参数可以是任意有效的数值表达式。

    如果 number 包含 Null,则返回 Null

    如果是未初始化变量,则返回 0。
   
    说明   

    数字的绝对值是其无符号的数值大小。例如,Abs(-1)Abs(1) 都返回 1。
   
    下面示例利用 Abs 函数计算数字的绝对值:
   
    Dim MyNumber   
    MyNumber = Abs(50.3 )      '返回 50.3。   
    MyNumber = Abs(-50.3)      '返回 50.3。   

    ■  Sgn 函数       

    返回表示数字符号的整数。
   
    Sgn(number)
   
    number 参数可以是任意有效的数值表达式。
   
    返回值    Sgn 函数有如下返回值: [tr]       如果 number 为          Sgn返回[/tr]
大于零 1
等于零 0
小于零 -1
       
     说明
   
    number 参数的符号决定 Sgn 函数的返回值。
   
    下面的示例利用 Sgn 函数决定数值的符号:
     
    Dim MyVar1, MyVar2, MyVar3, MySign   
    MyVar1 = 12: MyVar2 = -2.4: MyVar3 = 0   
    MySign = Sgn(MyVar1)   ' 返回 1。   
    MySign = Sgn(MyVar2)   ' 返回 -1。
    MySign = Sgn(MyVar3)   ' 返回 0。

    ■  Hex 函数

    返回表示十六进制数字值的字符串。

    Hex(number)

    number 参数是任意有效的表达式。

    说明

    如果 number 参数不是整数,则在进行运算前将其四舍五入为最接近的整数。
[tr]   如果 number 是                    Hex 返回[/tr]
Null Null。
Empty 零 (0)。
其他数 最大到八位的十六进制字符。

    您可以通过在数字前面添加前缀 &H 来表示十六进制数。例如,在十六进制计数法中,&H10 表示十进制数     16。

    下面的示例利用 Hex 函数返回数字的十六进制数:
   

    Dim MyHexMyHex = Hex(5)   ' 返回 5。
    MyHex = Hex(10)   ' 返回A。
    MyHex = Hex(459)   ' 返回 1CB。

    ■ Oct 函数

    返回表示数字八进制值的字符串。

    Oct(number)

    number 参数是任意有效的表达式。

    说明

    如果 number 参数不是整数,则在进行运算前,将其四舍五入到最接近的整数。
[tr]如果 number 是              Oct 返回[/tr]
Null Null。
Empty 零 (0)。
任意其他数字 最大可到 11 位的八进制字符。
用户也可以通过直接在数前加上 &O 表示八进制数。例如,&O10 为十进制数 8 的八进制表示法。

    下面的示例利用 Oct 函数返回数值的八进制数:

    Dim MyOctMyOct = Oct(4)     ' 返回 4。
    MyOct = Oct(8)     ' 返回 10。
    MyOct = Oct(459)   ' 返回 713。

    ■  Sqr 函数

    返回数值的平方根。

    Sqr(number)

    number 参数可以是任意有效的大于或等于零的数值表达式。

    说明

    下面的示例利用 Sqr 函数计算数值的平方根:

    Dim MySqrMySqr = Sqr(4)   ' 返回 2。
    MySqr = Sqr(23)   ' 返回4.79583152331272。
    MySqr = Sqr(0)   ' 返回0。
    MySqr = Sqr(-4)   ' 产生实时错误。

    ■  Int ,Fix 函数

    返回数字的整数部分。

    Int(number)
    Fix(number)

    number 参数可以是任意有效的数值表达式。如果 number 参数包含 Null,则返回 Null

    说明

    IntFix 函数都删除 number 参数的小数部分并返回以整数表示的结果。
    IntFix 函数的区别在于如果 number 参数为负数时,Int 函数返回小于或等于 number 的第一个负整数,而 Fix 函数返回大于或等于 number 参数的第一个负整数。例如,Int 将 -8.4 转换为 -9,而 Fix 函数将 -8.4 转换为 -8。

    Fix(number) 等同于:
    Sgn(number) * Int(Abs(number))

    下面的示例说明 IntFix 函数如何返回数字的整数部分:

    MyNumber = Int(99.8)    ' 返回 99。
    MyNumber = Fix(99.2)    ' 返回 99。
    MyNumber = Int(-99.8)   ' 返回 -100。
    MyNumber = Fix(-99.8)   ' 返回-99。
    MyNumber = Int(-99.2)   ' 返回 -100。
    MyNumber = Fix(-99.2)   ' 返回 -99。

    ■  Round 函数

    返回按指定位数进行四舍五入的数值。

    Round(expression[, numdecimalplaces])

    参数Expression 必选项。数值表达式被四舍五入。
    Numdecimalplaces 可选项。数字表明小数点右边有多少位进行四舍五入。如果省略,则 Round 函数返回整数。

    说明

    下面的示例利用 Round 函数将数值四舍五入到两位小数:

    Dim MyVar, pi
    pi = 3.14159
    MyVar = Round(pi, 2)  ' 返回  3.14。

    ■  Log 函数

    返回数值的自然对数。

    Log(number)

    number 参数是任意大于 0 的有效数值表达式。

    说明

    自然对数是以 e 为底的对数。常数 e 的值约为 2.718282。
    用 n 的自然对数除 x 的自然对数,可以得到以 n 为底的 x 的对数。如下所示:
    Logn(x) = Log(x) / Log(n)

    以下示例为一个自定义的 Function 过程,该过程计算以 10 为底的对数:
   
    Function Log10(X)   
          Log10 = Log(X) / Log(10)
    End Function

    ■  Exp 函数

    返回 e(自然对数的底)的幂次方。

    Exp(number)

    number 参数可以是任意有效的数值表达式。

    说明

    如果 number 参数超过 709.782712893,则出现错误。常数 e 的值约为 2.718282。
    注意   Exp 函数完成 Log 函数的反运算,并且有时引用为反对数形式。

    下面的示例利用 Exp 函数返回 e 的幂次方:

    Dim MyAngle, MyHSin   ' 用弧度定义角。
    MyAngle = 1.3   ' 计算双曲线的正弦。
    MyHSin = (Exp(MyAngle) - Exp(-1 * MyAngle)) / 2

    ■  三角函数 Sin 、Cos 、Tan 、Atn

    Sin(number)    正弦
    Cos(number)    余弦
    Tan(number)    正切
    Atn(number)    反正切

    number 参数可以是任何将某个角表示为弧度的有效数值表达式。

    说明

    将角度乘以 pi/180 即可转换为弧度,将弧度乘以 180/pi 即可转换为角度。

    示例:

    Dim MyAngle, MyCotangent
    MyAngle = 1.3   ' 用弧度定义角度。
    MyCosecant = 1 / Sin(MyAngle)   '计算余割。
    MySecant = 1 / Cos(MyAngle)  ' 计算正割。
    MyCotangent = 1 / Tan(MyAngle)   ' 计算余切。

   


二 与字符串处理有关的函数

    ■  Len 函数

     
返回字符串内字符的数目,或是存储一变量所需的字节数。

    Len(string | varname)

    参数
    sring 任意有效的字符串表达式。如果 string 参数包含 Null,则返回 Null
    Varname 任意有效的变量名。如果 varname 参数包含 Null,则返回 Null

    说明

    下面的示例利用 Len 函数返回字符串中的字符数目:

    Dim MyStringMyString = Len("VBSCRIPT") 'MyString 包含 8。

   
    ■  Mid  函数

    从字符串中返回指定数目的字符。

    Mid(string, start[, length])

    参数
    string 字符串表达式,从中返回字符。如果 string 包含 Null,则返回 Null
    Start   string 中被提取的字符部分的开始位置。如果 start 超过了 string 中字符的数目,Mid 将返回零长度字符串 ("")。
    Length 要返回的字符数。如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到字符串结束的所有字符。 说明要判断 string 中字符的数目,可使用 Len 函数。

    下面的示例利用 Mid 函数返回字符串中从第四个字符开始的六个字符:
   

    Dim MyVarMyVar = Mid("VB脚本is fun!", 4, 6) 'MyVar 包含 "Script"。

    ■  Left 函数

   
返回指定数目的从字符串的左边算起的字符。

    Left(string, length)

    参数
    string 字符串表达式,其最左边的字符被返回。如果 string 参数中包含 Null,则返回 Null
    Length 数值表达式,指明要返回的字符数目。如果是 0,返回零长度字符串 ("");如果大于或等于 string 参数中的字符总数,则返回整个字符串。 说明可使用 Len 函数确定 string 参数中的字符数目。

    下面的示例利用Left 函数返回MyString 的左边三个字母:
   

    Dim MyString, LeftString
    MyString = "VBSCript"
    LeftString = Left(MyString, 3) 'LeftString 包含 "VBS"。

    ■  Right 函数

   
从字符串右边返回指定数目的字符。
   

    Right(string, length)

    参数
    string 字符串表达式,其最右边的字符被返回。如果 string 参数中包含 Null,则返回 Null
    Length 数值表达式,指明要返回的字符数目。如果为 0,返回零长度字符串;如果此数大于或等于 string 参数中的所有字符数目,则返回整个字符串。 说明要确定 string 参数中的字符数目,使用 Len 函数。

    下面的示例利用 Right 函数从字符串右边返回指定数目的字符:

    Dim AnyString, MyStr
    AnyString = "Hello World"      ' 定义字符串。
    MyStr = Right(AnyString, 1)    ' 返回 "d"。
    MyStr = Right(AnyString, 6)    ' 返回 " World"。
    MyStr = Right(AnyString, 20)   ' 返回 "Hello World"。

    ■  LCase 函数

    返回字符串的小写形式。

    LCase(string)

    string 参数是任意有效的字符串表达式。如果 string 参数中包含 Null,则返回 Null

    说明仅大写字母转换成小写字母;所有小写字母和非字母字符保持不变。

    下面的示例利用 LCase 函数把大写字母转换为小写字母:

    Dim MyString
    Dim LCaseString
    MyString = "VBSCript"
    LCaseString = LCase(MyString)   ' LCaseString 包含 "vbscript"。

    ■  UCase 函数

    返回字符串的大写形式。

    UCase(string)

    string 参数是任意有效的字符串表达式。如果 string 参数中包含 Null,则返回 Null

    说明

    只有小写字母被转换成大写字母;所有大写字母和非字母字符均保持不变。

    下面的示例利用 UCase 函数返回字符串的大写形式:

     Dim MyWord
     MyWord = UCase("Hello World")   ' 返回"HELLO WORLD"。

    ■  Trim 、Ltrim 、Rtrim 函数

    返回不带前导空格 (LTrim)、后续空格 (RTrim) 或前导与后续空格 (Trim) 的字符串副本。

    LTrim(string)
    RTrim(string)
    Trim(string)

    string 参数是任意有效的字符串表达式。如果 string 参数中包含 Null,则返回 Null

    说明

    下面的示例利用 LTrim, RTrim, 和 Trim 函数分别用来除去字符串开始的空格、尾部空格、 开始和尾部空格:

    Dim MyVar
    MyVar = LTrim("   vbscript ")   'MyVar 包含 "vbscript "。
    MyVar = RTrim("   vbscript ")   'MyVar 包含 "   vbscript"。
    MyVar = Trim("   vbscript ")   'MyVar 包含 "vbscript"。

    ■  Replace 函数

    返回字符串,其中指定数目的某子字符串被替换为另一个子字符串。

    Replace(expression, find, replacewith[, compare[, count[, start]]])

   
    expression 必选项。字符串表达式包含要替代的子字符串。
    Find 必选项。被搜索的子字符串。
    Replacewith 必选项。用于替换的子字符串。 S
    tart 可选项。expression 中开始搜索子字符串的位置。如果省略,默认值为 1。在和count 关联时必须用
    count 可选项。执行子字符串替换的数目。如果省略,默认值为 -1,表示进行所有可能的替换。在和 start 关联时必须用。
    Compare 可选项。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。如果省略,缺省值为 0 ,这意味着必须进行二进制比较。
   
    设置compare 参数可以有以下值:
[tr]         常数              值                                      描述[/tr]
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文本比较。

   
    返回值Replace 返回以下值: [tr]
                 如果                                                             Replace 返回
[/tr]
expression 为零长度 零长度字符串 ("")。
expression 为 Null 错误。
find 为零长度 expression 的副本。
replacewith 为零长度 expression 的副本,其中删除了所有由 find 参数指定的内容。
start > Len(expression) 零长度字符串。
count 为 0 expression 的副本。

    说明

    Replace 函数的返回值是经过替换(从由 start 指定的位置开始到 expression 字符串的结尾)后的字符串,而不是原始字符串从开始至结尾的副本。

    下面的示例利用 Replace 函数返回字符串:

    Dim MyString
    MyString = Replace("XXpXXPXXp", "p", "Y")   '二进制比较从字符串左端开始。返回 "XXYXXPXXY"。
    MyString = Replace("XXpXXPXXp", "p", "Y", '文本比较从第三个字符开始。返回 "YXXYXXY"。3,, -1, 1)

   
  InStr 函数

   
返回某字符串在另一字符串中第一次出现的位置。
   
    InStr([start, ]string1, string2[, compare])

    参数
    start 可选项。数值表达式,用于设置每次搜索的开始位置。如果省略,将从第一个字符的位置开始搜索。如果 start 包含 Null,则会出现错误。如果已指定 compare,则必须要有 start 参数。
    string1 必选项。接受搜索的字符串表达式。
    string2 必选项。要搜索的字符串表达式。
    compare 可选项。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。如果省略,将执行二进制比较。

    设置compare 参数可以有以下值: [tr]       常数                值                                      描述

[/tr]
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文本比较。

    返回值InStr 函数返回以下值: [tr]                   如果                                   InStr 返回

[/tr]
string1 为零长度 0
string1 为 Null Null
string2 为零长度 start
string2 为 Null Null
string2 没有找到 0
在 string1 中找到 string2 找到匹配字符串的位置
start > Len(string2) 0

    说明

    下面的示例利用 InStr 搜索字符串:

    Dim SearchString, SearchChar, MyPos
    SearchString ="XXpXXpXXPXXP"   ' 要搜索的字符串。
    SearchChar = "P"   ' Search for "P".
    MyPos = Instr(4, SearchString, SearchChar, 1)   ' 在位置 4 进行的文本比较。返回 6。
    MyPos = Instr(1, SearchString, SearchChar, 0)   ' 在位置 1 进行的二进制比较。返回 9。
    MyPos = Instr(SearchString, SearchChar)   ' 默认情况下,进行的是二进制比较(省略了最后的参数)。返回 9。
    MyPos = Instr(1, SearchString, "W")   ' 在位置 1 进行的二进制比较。返回 0(找不到 "W")。

    ■  InStrRev 函数

    返回某字符串在另一个字符串中出现的从结尾计起的位置。

    InStrRev(string1, string2, [start[, compare]])

    参数s
    tring1 必选项。接受搜索的字符串表达式。
    string2 必选项。被搜索的字符串表达式。
    Start 可选项。数值表达式,用于设置每次搜索的开始位置。如果省略,则默认值为 -1,表示从最后一个字符的位置开始搜索。如果 start 包含 Null,则出现错误
    compare 可选项。在计算子字符串时,指示要使用的比较类型的数值。如果省略,将执行二进制比较。有关数值,请参阅“设置”部分。

    设置compare 参数可以有以下值: [tr]
                 常数                        Value                                                     描述
[/tr]
vbBinaryCompare 0 执行二进制比较。
vbDatabaseCompare 2 执行基于包含在数据库(在此数据库中执行比较)中的信息的比较。
返回值InStrRev 返回以下值: [tr]               如果                      InStrRev 返回[/tr]
string1 为零长度 0
string1 为 Null Null
string2 为零长度 start
string2 为 Null Null
string2 没有找到 0
在 string1 中找到 string2 找到匹配字符串的位置
start > Len(string2) 0
说明

    下面的示例利用 InStrRev 函数搜索字符串:

    Dim SearchString, SearchChar, MyPos
    SearchString ="XXpXXpXXPXXP"   ' 要搜索的字符串。
    SearchChar = "P"   ' Search for "P".
    MyPos = InstrRev(SearchString, SearchChar, 10, 0)   ' 在位置 10 进行的二进制比较。返回 9。
    MyPos = InstrRev(SearchString, SearchChar, -1, 1)   ' 在最后位置进行的文本比较。返回 12。
    MyPos = InstrRev(SearchString, SearchChar, 8)   ' 默认情况下,进行的是二进制比较(省略最后的参数)。返回 0。

    ■  Space 函数

    返回由指定数目的空格组成的字符串。

    Space(number)

    number 参数为字符串中用户所需的空格数。

    说明

    下面的示例利用 Space 函数返回由指定数目空格组成的字符串:

    Dim MyStringMyString = Space(10)   ' 返回具有 10 个空格的字符串。
    MyString = "Hello" & Space(10) & "World" ' 在两个字符串之间插入 10 个空格。

    ■  String 函数

    返回具有指定长度的、重复字符组成的字符串。

    String(number, character)

    参数
    number 返回字符串的长度。如果 number 参数包含 Null,则返回 Null
    Character 指定字符或字符串表达式的字符代码,其中字符串表达式的第一个字符用于组成返回的字符串。如果 character 参数包含 Null,则返回 Null

    说明
   
    如果指定的 character 值大于 255,则 String 使用下列公式将该数转换成有效的字符代码:
    character Mod 256

    下面的示例利用 String 函数返回指定长度的由重复字符组成的字符串:

    Dim MyString
    MyString = String(5, "*")   ' 返回"*****"。
    MyString = String(5, 42)   ' 返回"*****"。
    MyString = String(10, "ABC")   ' 返回"AAAAAAAAAA"。

    ■  StrReverse 函数

    将字符串逆序排列

    StrReverse(string)

    示例:

    Dim MyString
    MyString=StrReverse("按键精灵") ' 返回 "灵精键按"

    ■ Split 函数

    返回基于 0 的一维数组,其中包含指定数目的子字符串。

    Split(expression[, delimiter[, count[, start]]])

    参数
    expression 必选项。字符串表达式,包含子字符串和分隔符。如果 expression 为零长度字符串,Split 返回空数组,即不包含元素和数据的数组。
    delimiter 可选项。用于标识子字符串界限的字符。如果省略,使用空格 ("") 作为分隔符。如果 delimiter 为零长度字符串,则返回包含整个 expression 字符串的单元素数组。
    count 可选项。被返回的子字符串数目,-1 指示返回所有子字符串。
    Compare 可选项。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。

    设置compare 参数可以有以下值:
[tr]
        常数             值                                    描述
[/tr]
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文本比较。

    说明

    下面的示例利用 Split 函数从字符串中返回数组。函数对分界符进行文本比较,返回所有的子字符串。

    Dim MyString, MyArray, Msg
    MyString = "VBScriptXisXfun!"
    MyArray = Split(MyString, "x", -1, 1)
        ' MyArray(0) 包含 "VBScript"。
        ' MyArray(1) 包含 "is"。
        ' MyArray(2) 包含 "fun!"。
    Msg = MyArray(0) & " " & MyArray(1)
    Msg = Msg   & " " & MyArray(2)
    MsgBox Msg



三 数据类型转换函数

    ■  CInt 函数
   
    CInt 是一种常用的数据类型转换函数,其功能就是把不同的数据类型转换成整数。当输入的数据类型不同时,CInt 函数会根据该数值的数据类型做相应的处理。

    ※  字符串

    当输入值是由数字字符组成的字符串时,函数就会将全部由数字字符组成的字符串转换成整数。如果字符串中由任何字符不是数字的话,执行会出现错误。但第一个字符可以是减号(-),表示这个数字是一个负数;而且,函数会自动去掉字符串中前后的空格符;另外,如果输入的字符串是空的,输出结果是 0 。

    CInt("123") = 123
    CInt("     -837    ") = -837
    CInt("") = 0

    ※  布尔数

    由于布尔数只有两种值,所以输出也只能是两种可能。

    CInt(True) = -1
    CInt(False) = 0

    ※  浮点数

    浮点数就是带由小数部分的数字,包括单精度小数和双精度小数。如果输入的参数是一个浮点数,输出的结果就会是一个四舍五入到个位的整数,就象对小数进行 Round 函数运算一样。

    CInt(8.5) = 8
    CInt(9.5) = 10
    CInt(-646.56465465) = -647

    ※  日期

    如果输入的参数是日期,输出是从公元  1899/12/31 开始算起,计算到所输入日期之间经过的天数。但由于整数的范围是 -32768~32767 ,所以,只要天数超过这个范围,也就是日期在 1989/9/16 之后或者在 1810/4/13 之前,在转换数据类型的时候就会出现溢位的错误。要解决这个问题,只要把日期的数据类型转换成长整数就可以了。(见后面的 CLng函数)

    CInt(#1900/1/1#) = 2
    CInt(#1823/4/5#) = -28028

    ※  时间

    若输入的数值是时间,输出的值就只有 0 和 1 。0 表示时间是上午,1 就表示时间是下午。

    CInt(#11:59:59#) = 0
    CInt(#12:00:01#) = 1

    ■  CStr 函数

    跟 CInt 函数相反,CStr 函数是把其他数据类型的值转换成字符串数据类型。

    ※  数字

    函数会把数字(包括整数及浮点数和布尔数,切正负都可以)转换成字符串类型输出

    CStr(123) = "123"
    CStr(-44.33) = "-44.33"
    CStr(True) = "True"

    ※  日期

    用函数将日期转换成字符串后,不管是哪种格式的日期,输出的值都会用 yyyy / mm / dd 的方式表示

    CStr(#June 25 1999#) = "1999/6/25"
    CStr(#July 4,89#) = "1989/7/4"
    CStr(#2000/2/2#) = "2000/2/2"

    ※  时间

    不管是哪种格式的时间,输出的值都会用 12 小时制  AM/PM hh:mm:ss 的方式表示

    CStr(#5:3:33#) = "AM 05:03:33"
    CStr(#6:13:51 PM#) = "PM 06:13:51"


    ■  CLng 函数

    把其他数据类型的数值转换成长整数。功能跟CInt 一样,布同的是长整数可以表达的范围比整数大很多,从 -2147486648~2147486647。用CInt 函数进行日期转换可能超出范围,用CLng函数就可以解决。

    ■  CBool 函数

    CBool 函数是把一个数值或表达式的结果转换成布尔数。

    ※  数字

    所有的数字,包括整数及浮点数,只有在数值等于0时才输出False,其他的情况都输出 True 。

    ※  字符串
   
    一般来说,布可以将字符串转换成布尔数,但是如果输入的字符串符合 CInt 函数的转换规则,可以被 CInt 转换成整数的时候,输入的字符串就可以利用 CBool 函数进行类型转换。

    ※  日期时间

    在输入的参数是日期或时间类型时,转换情况也类似输入字符串的转换情形。当输入的参数在 CInt 情况下为 0 的时候输出 False ,其余的时候则输出 True

    ※  扩展

    在使用CBool 函数时,不仅可以用来进行数据类型的转换,还可以用来判断一个表达式是否成立。它可以用在选择条件或流程控制的判断上

    CBool(3=5) = False
    CBool("a"="a") = True
    CBool(#1999/1/1#>#1999/1/2#) = False

    ■  CDate 函数

    可以将其他数据类型的变量转换成日期和时间类型。

    ※  整数

    当输入的参数是整数时,除了 0 会输出时间(午夜 12 点整)以外,其他的情况会输出一个格式为 yyyy/mm/dd的日期,而这个日期是从 1899/12/30 开始算,经过所输入整数天数后的日期。

    CDate(0) = #AM 12:00:00#
    CDate(-1) = #1899/12/29#

    ※  浮点数

    可以把浮点数分成两个部分,整数部分转换的方法就和整数转换一样;小数部分代表时间。假设输入的参数是 1.1 ,先看整数部分,1 代表 1899/12/31 这一天;而因为一天有 1440 分钟,乘上剩下的0.1 ,就是 1899/12/31再加上 144 分钟,也就是凌晨的 2 点 24 分了。如果还有更多位数的小数就继续细分下去,一直到秒为止。

    CDate(1.1) = #1899/12/31 AM 02:24:00#
    CDate(-45.3) = #1899/11/15 AM 07:12:00#

    ※  字符串

    当输入的参数是字符串的时候,和字符串转换为整数的道理一样,只要字符串的内容符合日期及时间的输入格式,就可以完整的转换成日期的数据类型;若类型布符合,就会出现错误。

    ※  布尔数

    只有两种情况

    CDate(True) = #1899/12/29#
    CDate(False) = #AM 12:00:00#
     
四  其他转换函数

    ■  CByte 函数

    可以把其他的数据类型转换成 Byte 类型。因为其值只能在 0~255 之间,所以只要输入的参数大于 255 或是小于 0 ,就会发生执行阶段错误。

    ■  CSng 函数

    把输入的数值转换成单精度类型:当程序中的某些计算结果过于复杂,需要精确到小数以下的十几位,就可以用这个函数把数值装换成单精度小数。

    ■  CDbl 函数

    与 CSng 函数相似,不同的是,CDbl 函数是把数值转换成双精度的数字。