VBScript常用函数
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
1.Abs函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 7 'Abs(number) 8 'number 参数可以是任意有效的数值表达式。如果 number 包含 Null,则返回 Null;如果是未初始化变量,则返回 0。 9 10 '说明 11 '数字的绝对值是其无符号的数值大小。例如,Abs(-1) 和 Abs(1) 都返回 1。 12 13 '下面示例利用 Abs 函数计算数字的绝对值: 14 15 Dim MyNumber_1,MyNumber_2 16 MyNumber_1 = Abs(500.66 ) '返回 500.66。 17 MyNumber_2 = Abs(-500.66) '返回 500.66。 18 MsgBox MyNumber_1 19 MsgBox MyNumber_2
2.Array函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 'Array 函数 7 'Array(arglist) 8 'arglist参数是赋给包含在Variant中的数组元素的值的列表(用逗号分隔)。如果没有指定此参数,则将会创建零长度的数组。 9 10 '说明 11 '用于引用数组元素的表示符,由跟随有括号的变量名组成,括号中包含指示所需元素的索引号。在下面的示例中,第一条语句创建名为 num 的变量。第二条语句将一个数组赋值给变量 num。最后一条语句将包含在第二个数组元素中的值赋值给另一个变量。 12 '注意 未作为数组声明的变量仍可以包含数组。虽然包含数组的 Variant 变量与包含 Variant 元素的数组变量有概念上的不同,但访问数组元素的方法是相同的。 13 14 Dim num,B 15 num = Array(10,20,30) 16 B = num(2) ' B 现在为 30。 17 MsgBox B
3.Asc函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 7 'Asc(string) 8 'string 参数是任意有效的字符串表达式。如果 string 参数未包含字符,则将发生运行时错误。 9 10 '说明 11 '下面例子中, Asc 返回每一个字符串首字母的 ANSI 字符代码: 12 13 Dim MyNumber 14 MyNumber = Asc("A") '返回 65。 15 MyNumber = Asc("a") '返回 97。 16 MyNumber = Asc("Apple") '返回 65。 17 '注意 AscB 函数和包含字节数据的字符串一起使用。AscB 不是返回第一个字符的字符代码,而是返回首字节。AscW 是为使用 Unicode 字符的 32 位平台提供的。它返回 Unicode (宽型)字符代码,因此可以避免从 ANSI 到 Unicode 的代码转换。 18 19 '想要知道完整的字符集编码表,请参考http://www.cnblogs.com/yinzhengjie/p/6594771.html
4.Atn函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 7 'Atn(number) 8 'number 参数可以是任意有效的数值表达式。 9 10 '说明 11 'Atn 函数计算直角三角形两个边的比值 (number) 并返回对应角的弧度值。此比值是该角对边的长度与邻边长度之比。结果的范围是从 -pi/2 到 pi/2 弧度。 12 13 '弧度变换为角度的方法是将弧度乘以 pi/180。反之,角度变换为弧度的方法是将角度乘以180/pi 。 14 15 '下面的示例利用 Atn 来计算 pi 的值: 16 17 Dim pi 18 pi = 4 * Atn(1) ' 计算 pi 的值。 19 MsgBox pi 20 21 '注意 Atn 是 Tan(将角作为参数返回直角三角形两边的比值)的反三角函数。不要混淆 Atn 与余切(正切的倒数 (1/tangent))函数。
5.CBool函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 7 'CBool 函数 8 '请参阅 9 'CByte 函数 | CCur 函数 | CDate 函数 | CDbl 函数 | CInt 函数 | CLng 函数 | CSng 函数 | CStr 函数 10 '返回表达式,此表达式已转换为 Boolean 子类型的 Variant。 11 12 'CBool(expression) 13 'expression 是任意有效的表达式。 14 15 '说明 16 '如果 expression 是零,则返回 False;否则返回 True。如果 expression 不能解释为数值,则将发生运行时错误。 17 18 '下面的示例使用 CBool 函数将一个表达式转变成 Boolean 类型。如果表达式所计算的值非零,则 CBool 函数返回 True;否则返回 False。 19 20 Dim A, B, Check,Check_1,Check_2 21 22 A = 5: B = 5 ' 初始化变量,可以用":"定义多个变量 23 Check = CBool(A = B) ' 复选框设为 True 。(5=5为真) 24 Check_1 = CBool(A) 25 MsgBox Check_1 26 A = 0 ' 定义变量。 27 Check_2 = CBool(A) ' 复选框设为 False 。(0=5为假) 28 MsgBox Check_2
6.CByte函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 7 'CByte(expression) 8 'expression 参数是任意有效的表达式。 9 '说明 10 '通常,可以使用子类型转换函数书写代码,以显示某些操作的结果应被表示为特定的数据类型,而不是默认类型。例如,在出现货币、单精度、双精度或整数运算的情况下,使用 CByte 强制执行字节运算。 11 'CByte函数用于进行从其他数据类型到Byte子类型的的国际公认的格式转换。例如对十进制分隔符(如千分符)的识别,可能取决于系统的区域设置。 12 '如果 expression 在 Byte 子类型可接受的范围之外,则发生错误。下面的示例利用 CByte 函数把 expression 转换为 byte: 13 14 Rem 如果你没有看懂上面啥意思,其实你就可以理解成四舍五入啦,通过下面的例子你就理解啦! 15 Dim MyDouble, MyByte,MyDouble_1,MyByte_1 16 MyDouble = 125.5678 ' MyDouble 是一个双精度值。 17 MyDouble_1 = 125.4999 18 MsgBox MyDouble 19 MsgBox MyDouble_1 20 MyByte = CByte(MyDouble) ' MyByte 包含 126 。 21 MyByte_1 = CByte(MyDouble_1) 22 MsgBox MyByte 23 MsgBox MyByte_1
7.CCur函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 'CCur(expression) 7 'expression 参数是任意有效的表达式。 8 9 '说明 10 '通常,您可以使用子类型数据转换函数书写代码,以显示某些操作的结果应当被表达为特定的数据类型,而非默认的数据类型。例如在整数运算的情况下,使用 CCur 函数强制进行货币计算。 11 12 'CCur 函数用于进行从其他数据类型到 Currency 子类型的国际公认的格式转换。例如,对十进制分隔符和千位分隔符的识别取决于系统的区域设置。 13 14 '下面的示例使用 CCur 函数将一个表达式转换成 Currency 类型: 15 16 Dim MyDouble, MyCurr 17 MyDouble = 543.214588 ' MyDouble 是双精度的。 18 MyCurr = CCur(MyDouble * 2) ' 把 MyDouble * 2 (1086.429176) 的结果转换为 Currency (1086.4292)。 19 MsgBox MyDouble 20 MsgBox MyCurr
8.CDate函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 7 'CDate(date) 8 'date 参数是任意有效的日期表达式。 9 10 '说明 11 'IsDate 函数用于判断 date 是否可以被转换为日期或时间。CDate 识别日期文字和时间文字,以及一些在可接受的日期范围内的数字。在将数字转换为日期时,数字的整数部分被转换为日期,分数部分被转换为从午夜开始计算的时间。 12 13 'CDate 根据系统的区域设置识别日期格式。如果数据的格式不能被日期设置识别,则不能判断年、月、日的正确顺序。另外,如果长日期格式包含表示星期几的字符串,则不能被识别。 14 15 '下面的示例使用 CDate 函数将字符串转换成日期类型。一般不推荐使用硬件译码日期和时间作为字符串(下面的例子已体现)。而使用时间和日期文字 (如 #10/19/1962#, #4:45:23 PM#)。 16 17 Dim MyDate,MyShortDate,MyTime,MyShortTime 18 MyDate = "October 21, 2016" ' 定义日期。 19 MyShortDate = CDate(MyDate) ' 转换为日期数据类型。 20 MyTime = "4:35:47 PM" ' 定义时间。PM表示下午的意思,AM表示上午的意思,这是常识哟~ 21 MyShortTime = CDate(MyTime) ' 转换为日期数据类型。 22 MsgBox MyShortDate 23 MsgBox MyShortTime
9.CDbl函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 7 8 'CDbl(expression) 9 'expression 参数是任意有效的表达式。 10 11 '说明 12 '通常,您可以使用子类型数据转换函数书写代码,以显示某些操作的结果应当被表达为特定的数据类型,而非默认的数据类型。例如在出现货币或整数运算的情况下,使用 CDbl 或 CSng 函数强制进行双精度或单精度算术运算。 13 14 'CDbl 函数用于进行从其他数据类型到 Double 子类型的国际公认的格式转换。例如,十进制分隔符和千位分隔符的识别取决于系统的区域设置。 15 16 '下面的示例利用 CDbl 函数把 expression 转换为 Double。 17 18 Dim MyCurr, MyDouble 19 MyCurr = CCur(234.456784) ' MyCurr 是 Currency 型 (234.4567)。 20 MyDouble = CDbl(MyCurr * 8.2 * 0.01) ' 把结果转换为 Double 型 (19.2254576)。 21 MsgBox MyCurr 22 MsgBox MyDouble
10.Chr函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 'Chr(charcode) 7 'charcode 参数是可以标识字符的数字。 8 9 '说明 10 '从 0 到 31 的数字表示标准的不可打印的 ASCII 代码。例如,Chr(10) 返回换行符。 11 12 '下面例子利用 Chr 函数返回与指定的字符代码相对应的字符: 13 14 Dim MyChar 15 MyChar = Chr(65) '返回 A。 16 MsgBox MyChar 17 MyChar = Chr(97) '返回 a。 18 MsgBox MyChar 19 MyChar = Chr(62) '返回 >。 20 MsgBox MyChar 21 MyChar = Chr(37) '返回 %。 22 MsgBox MyChar 23 '注意 ChrB 函数与包含在字符串中的字节数据一起使用。ChrB 不是返回一个或两个字节的字符,而总是返回单个字节的字符。ChrW 是为使用 Unicode 字符的 32 位平台提供的。它的参数是一个 Unicode (宽字符)的字符代码,因此可以避免将 ANSI 转化为 Unicode 字符。
11.CInt函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 'CInt(expression) 7 'expression 参数是任意有效的表达式。 8 9 '说明 10 '通常,可以使用子类型转换函数书写代码,以显示某些操作的结果应被表示为特定的数据类型,而不是默认类型。例如,在出现货币、单精度或双精度运算的情况下,使用 CInt 或 CLng 强制执行整数运算。 11 12 'CInt 函数用于进行从其他数据类型到 Integer 子类型的国际公认的格式转换。例如对十进制分隔符(如千分符)的识别,可能取决于系统的区域设置。 13 14 '如果 expression 在 Integer 子类型可接受的范围之外,则发生错误。 15 16 '下面的示例利用 CInt 函数把值转换为 Integer: 17 18 Dim MyDouble, MyInt 19 MyDouble = 2345.5678 ' MyDouble 是 Double。 20 MyInt = CInt(MyDouble) ' MyInt 包含 2346。 21 MsgBox MyInt 22 '注意 CInt 不同于 Fix 和 Int 函数删除数值的小数部分,而是采用四舍五入的方式。当小数部分正好等于 0.5 时, CInt 总是将其四舍五入成最接近该数的偶数。例如, 0.5 四舍五入为 0, 以及 1.5 四舍五入为 2. 23 MyInt = CInt(0.5) 24 MsgBox MyInt 25 MyInt = CInt(2.5) 26 MsgBox MyInt
12.CLng函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 'CLng(expression) 7 'expression 参数是任意有效的表达式。 8 9 '说明 10 '通常,您可以使用子类型数据转换函数书写代码,以显示某些操作的结果应当被表达为特定的数据类型,而非默认的数据类型。例如,在出现货币运算、单精度或双精度算术运算的情况下,使用 CInt 或 CLng 函数强制进行整数运算。 11 12 'CLng 函数用于进行从其他数据类型到 Long 子类型的的国际公认的格式转换。例如,对十进制分隔符和千位分隔符的识别取决于系统的区域设置。 13 14 '如果 expression 取值不在 Long子类型的允许范围内,则会出现错误。 15 16 '下面的示例利用 CLng 函数把值转换为 Long: 17 18 Dim MyVal1, MyVal2, MyLong1, MyLong2 19 MyVal1 = 25427.45: MyVal2 = 25427.55 ' MyVal1, MyVal2 是双精度值。 20 MyLong1 = CLng(MyVal1) ' MyLong1 25427。 21 MyLong2 = CLng(MyVal2) ' MyLong2 包含 25428 。 22 '注意 CLng 不同于 Fix 和 Int 函数删除小数部分, 而是采用四舍五入的方式。当小数部分正好等于 0.5 时, CLng 函数总是将其四舍五入为最接近该数的偶数。如, 0.5 四舍五入为 0, 以及 1.5 四舍五入为 2 。 23 MyLong1 = CLng(0.5) 24 MsgBox MyLong1 25 MyLong1 = CLng(2.5) 26 MsgBox MyLong1
13.Cos函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 'Cos(number) 6 'number 参数可以是任何将某个角表示为弧度的有效数值表达式。 7 8 '说明 9 'Cos 函数取某个角并返回直角三角形两边的比值。此比值是直角三角形中该角的邻边长度与斜边长度之比。结果范围在 -1 到 1 之间。 10 11 '角度转化成弧度方法是用角度乘以 pi/180。反之,弧度转化成角度的方法是用弧度乘以 180/pi。 12 13 '下面的示例利用 Cos 函数返回一个角的余弦值: 14 15 Dim MyAngle, MySecant 16 MyAngle = 1.3 ' 用弧度定义一个角。 17 MsgBox MyAngle 18 MySecant = 1 / Cos(MyAngle) ' 计算正割。 19 MsgBox Cos(MyAngle) 20 MsgBox MySecant
14.CreateObject函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 'CreateObject(servername.typename [, location]) 7 '参数 8 'servername 9 '必选项。提供对象的应用程序名称。 10 'typename 11 '必选项。要创建的对象类型或类。 12 'location 13 '可选项。对象所在的网络服务器将被创建。 14 '说明 15 'Automation 服务器至少提供一种对象类型。例如,字处理应用程序可以提供应用程序对象、文档对象和工具条对象。 16 '要创建 Automation 对象,将 CreateObject 函数返回的对象赋值给某对象变量: 17 Dim ExcelSheet 18 Set ExcelSheet = CreateObject("Excel.Sheet") 19 '上述代码启动创建对象(在此实例中,是 Microsoft Excel 电子表格)的应用程序。对象创建后,就可以在代码中使用定义的对象变量引用此对象。在下面的示例中,可使用对象变量、ExcelSheet 和其他 Excel 对象,包括 Application 对象和 Cells 集合访问新对象的属性和方法。例如: 20 21 ' 使 Excel 在整个 Application 对象中都可见。 22 ExcelSheet.Application.Visible = True 23 ' 将一些文本放入工作表的第一个单元格中。 24 ExcelSheet.ActiveSheet.Cells(1,1).Value = "This is column A, row 1" 25 ' 保存工作表。 26 ExcelSheet.SaveAs "C:DOCSTEST.XLS" 27 ' 关闭 Excel,使 Quit 方法处于 Application 对象中。 28 ExcelSheet.Application.Quit 29 ' 释放对象变量。 30 Set ExcelSheet = Nothing 31 '在远程服务器上创建一个对象,当 Internet 安全关闭时只能完成。通过传递计算机名到 CreateObject 服务器名的参数,能在远程网络上创建对象。该名称如同共享部份的机器名。例如网络共享名命名为: "\myserverpublic", servername 是 "myserver"。另外,只能指定 servername 使用 DNS 格式或 IP 地址。 32 33 '以下代码返回运行在命名为"myserver"的远程网络计算机上 Excel 实例的版本号 : 34 35 Function GetVersion 36 Dim XLApp 37 Set XLApp = CreateObject("Excel.Application", "MyServer") 38 GetVersion = XLApp.Version 39 End Function 40 '错误发生在指定的远程服务器不存在或无法找到。
15.CSng函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 'CSng(expression) 7 'expression 参数是任意有效的表达式。 8 9 '说明 10 '通常,可以使用子类型转换函数书写代码,以显示某些操作的结果应被表示为特定的数据类型,而不是默认类型。例如,在出现货币或整数运算的情况下,使用 CDbl 或 CSng 强制执行双精度或单精度运算。 11 'CSng 函数用于进行从其他数据类型到 Single 子类型的国际公认的格式转换。例如,对十进制分隔符(如千分符)的识别取决于系统的区域设置。 12 13 '如果 expression 在 Single 子类型允许的范围之外,则发生错误。 14 15 '下面的示例利用 CSng 函数把值转换为 Single(浮点数): 16 17 Dim MyDouble1, MyDouble2, MySingle1, MySingle2,a,b ' MyDouble1, MyDouble2 是双精度值。 18 MyDouble1 = 75.3421115: MyDouble2 = 75.3421555 19 a = CSng(MyDouble1) ' MySingle1 包含 75.34211 。 20 b = CSng(MyDouble2) ' MySingle2 包含 75.34216 。 21 MsgBox a 22 MsgBox b
16.CStr函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 'CStr(expression) 6 'expression 参数是任意有效的表达式。 7 8 '说明 9 '通常,可以使用子类型转换函数书写代码,以显示某些操作的结果应被表示为特定的数据类型,而不是默认类型。例如,使用 CStr 强制将结果表示为 String。 10 'CStr函数用于替代St 函数来进行从其他数据类型到String子类型的国际公认的格式转换。例如对十进制分隔符的识别取决于系统的区域设置。 11 'expression 根据下表决定返回的数据: 12 13 '如果 expression 为 CStr 返回 14 'Boolean 字符串,包含 True 或 False。 15 'Date 字符串,包含系统的短日期格式日期。 16 'Null 运行时错误。 17 'Empty 零长度字符串 ("")。 18 'Error 字符串,包含跟随有错误号码的单词 Error。 19 '其他数值 字符串,包含此数字。 20 '下面的示例利用 CStr 函数把数字转换为 String: 21 22 Dim MyDouble, MyString 23 MyDouble = 437.324 ' MyDouble 是双精度值。 24 MyString = CStr(MyDouble) ' MyString 包含 "437.324"。 25 MsgBox MyString
17.Date函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 'Date 函数 7 '返回当前系统日期。 8 9 'Date 10 '说明 11 '下面的示例利用 Date 函数返回当前系统日期: 12 13 Dim MyDate 14 MyDate = Date ' MyDate 包含当前系统日期。 15 MsgBox MyDate
18.DateAdd函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 'DateAdd 函数 7 '返回已添加指定时间间隔的日期。 8 9 'DateAdd(interval, number, date) 10 '参数 11 'interval 12 '必选项。字符串表达式,表示要添加的时间间隔。有关数值,请参阅“设置”部分。 13 'number 14 '必选项。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。 15 'date 16 '必选项。Variant 或要添加 interval 的表示日期的文字。 17 '设置 18 'interval 参数可以有以下值: 19 20 '设置 描述 21 'yyyy 年 22 'q 季度 23 'm 月 24 'y 一年的日数 25 'd 日 26 'w 一周的日数 27 'ww 周 28 'h 小时 29 'n 分钟 30 's 秒 31 32 '说明 33 '可用 DateAdd 函数从日期中添加或减去指定时间间隔。例如可以使用 DateAdd 从当天算起 30 天以后的日期或从现在算起 45 分钟以后的时间。要向 date 添加以“日”为单位的时间间隔,可以使用“一年的日数”(“y”)、“日”(“d”)或“一周的日数”(“w”)。 34 35 'DateAdd 函数不会返回无效日期。如下示例将 92 年 1 月 31 日加上一个月: 36 37 Dim NewDate 38 NewDate = DateAdd("m", 1, "31-Jan-92") 39 '在这个示例中,DateAdd 返回 95 年 2 月 28 日,而不是 95 年 2 月 31 日。如果 date 为 96 年 1 月 31 日,则返回 96 年 2 月 29 日,这是因为 1996 是闰年。 40 41 '如果计算的日期是在公元 100 年之前,则会产生错误。 42 43 '如果 number 不是 Long 型值,则在计算前四舍五入为最接近的整数。 44 MsgBox NewDate
19.DateDiff函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 'DateDiff 函数 7 '返回两个日期之间的时间间隔。 8 'DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]]) 9 'DateDiff 函数的语法有以下参数: 10 '参数 11 'interval 12 '必选项。字符串表达式表示用于计算 date1 和 date2 之间的时间间隔。有关数值,请参阅“设置”部分。 13 'date1, date2 14 '必选项。日期表达式。用于计算的两个日期。 15 'Firstdayofweek 16 '可选项。指定星期中第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。 17 'Firstweekofyear 18 '可选项。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。 19 '设置 20 'interval 参数可以有以下值: 21 22 '设置 描述 23 'yyyy 年 24 'q 季度 25 'n 月 26 'y 一年的日数 27 'd 日 28 'w 一周的日数 29 'ww 周 30 'h 小时 31 'm 分钟 32 's 秒 33 34 'firstdayofweek 参数可以有以下值: 35 36 '常数 值 描述 37 'vbUseSystemDayOfWeek 0 使用区域语言支持 (NLS) API 设置。 38 'vbSunday 1 星期日(默认) 39 'vbMonday 2 星期一 40 'vbTuesday 3 星期二 41 'vbWednesday 4 星期三 42 'vbThursday 5 星期四 43 'vbFriday 6 星期五 44 'vbSaturday 7 星期六 45 46 'firstweekofyear 参数可以有以下值: 47 48 '常数 值 描述 49 'vbUseSystem 0 使用区域语言支持 (NLS) API 设置。 50 'vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。 51 'vbFirstFourDays 2 由在新年中至少有四天的第一周开始。 52 'vbFirstFullWeek 3 由在新的一年中第一个完整的周开始。 53 54 '说明 55 'DateDiff 函数用于判断在两个日期之间存在的指定时间间隔的数目。例如可以使用 DateDiff 计算两个日期相差的天数,或者当天到当年最后一天之间的星期数。 56 57 '要计算 date1 和 date2 相差的天数,可以使用“一年的日数”(“y”)或“日”(“d”)。当 interval 为“一周的日数”(“w”)时,DateDiff 返回两个日期之间的星期数。如果 date1 是星期一,则 DateDiff 计算到 date2 之前星期一的数目。此结果包含 date2 而不包含 date1。如果 interval 是“周”(“ww”),则 DateDiff 函数返回日历表中两个日期之间的星期数。函数计算 date1 和 date2 之间星期日的数目。如果 date2 是星期日,DateDiff 将计算 date2,但即使 date1 是星期日,也不会计算 date1。 58 59 '如果 date1 晚于 date2,则 DateDiff 函数返回负数。 60 61 'firstdayofweek 参数会对使用“w”和“ww”间隔符号的计算产生影响。 62 63 '如果 date1 或 date2 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date1 或 date2 被包括在引号 (" ") 中并且省略年份,则在代码中每次计算 date1 或 date2 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。 64 65 '在 interval 为“年”(“yyyy”)时,比较 12 月 31 日和来年的 1 月 1 日,虽然实际上只相差一天,DateDiff 返回 1 表示相差一个年份。 66 67 '下面的示例利用 DateDiff 函数显示今天与给定日期之间间隔天数: 68 69 Function DiffADate(theDate) 70 DiffADate = "从当天开始的天数:" & DateDiff("d", Now, theDate) 71 End Function
20.DatePart函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 'DatePart 函数 7 '返回给定日期的指定部分。 8 'DatePart(interval, date[, firstdayofweek[, firstweekofyear]]) 9 'Arguments 10 'interval 11 '必选项。字符串表达式表示要返回的时间间隔。有关数值,请参阅“设置”部分。 12 'Date 13 '必选项。要计算的日期表达式。 14 'firstdayof week 15 '可选项。指定星期中的第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。 16 'Firstweekofyear 17 '可选项。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。 18 '设置 19 'interval 参数可以有以下值: 20 21 '设置 描述 22 'yyyy 年 23 'q 季度 24 'm 月 25 'y 一年的日数 26 'd 日 27 'w 一周的日数 28 'ww 周 29 'h 小时 30 'n 分钟 31 's 秒 32 33 'firstdayofweek 参数可以有以下值: 34 35 '常数 值 描述 36 'vbUseSystemDayOfWeek 0 使用区域语言支持 (NLS) API 设置。 37 'vbSunday 1 星期日(默认) 38 'vbMonday 2 星期一 39 'vbTuesday 3 星期二 40 'vbWednesday 4 星期三 41 'vbThursday 5 星期四 42 'vbFriday 6 星期五 43 'vbSaturday 7 星期六 44 45 'firstweekofyear 参数可以有以下值: 46 47 '常数 值 描述 48 'vbUseSystem 0 使用区域语言支持 (NLS) API 设置。 49 'vbFirstJan1 1 由 1 月 1 日所在的星期开始(默认)。 50 'vbFirstFourDays 2 由在新年中至少有四天的第一周开始。 51 'vbFirstFullWeek 3 由在新的一年中第一个完整的周(不跨年度)开始。 52 53 '说明 54 'DatePart 函数用于计算日期并返回指定的时间间隔。例如使用 DatePart 计算某一天是星期几或当前的时间。 55 56 'firstdayofweek 参数会影响使用“w”和“ww”间隔符号的计算。 57 58 '如果 date 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date 被包含在引号 (" ") 中,并且省略年份,则在代码中每次计算 date 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。. 59 60 '下面的示例利用 DatePart 函数获得日期并显示该日所在的季节。 61 62 Function GetQuarter(TheDate) 63 GetQuarter = DatePart("q", TheDate) 64 End Function
21.DateSerial函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 'DateSerial 函数 7 '对于指定的年、月、日,返回 Date 子类型的 Variant。 8 'DateSerial(year, month, day) 9 'Arguments 10 'Year 11 '从 100 到 9999 之间的数字或数值表达式。 12 'Month 13 '任意数值表达式。 14 'Day 15 '任意数值表达式。 16 '说明 17 '要指定日期,如 1991 年 12 月 31 日,DateSerial 函数中每个参数的取值范围都应该是可接受的;即日的取值应在 1 和 31 之间,月的取值应在 1 和 12 之间。但是,也可以使用表示某日之前或之后的年、月、日数目的数值表达式为每个参数指定相对日期。 18 '以下样例中使用了数值表达式代替绝对日期。在这里,DateSerial 函数返回 1990 年 8 月 1 日之前十年 (1990 - 10) 零两个月 (8 - 2) 又一天 (1 - 1) 的日期:即 1980 年 5 月 31 日。 19 Dim MyDate1, MyDate2 20 MyDate1 = DateSerial(1970, 1, 1) ' 返回 1970 年 1 月 1 日。 21 MyDate2 = DateSerial(1990 - 10, 8 - 2, 1 - 1) ' 返回 1980 年 5 月 31 日。 22 MsgBox MyDate1 23 MsgBox MyDate2 24 '对于 year 参数,若取值范围是从 0 到 99,则被解释为 1900 到 1999 年。对于此范围之外的 year 参数,则使用四位数字表示年份(例如 1800 年)。 25 '当任何一个参数的取值超出可接受的范围时,则会适当地进位到下一个较大的时间单位。例如,如果指定了 35 天,则这个天数被解释成一个月加上多出来的日数,多出来的日数取决于其年份和月份。但是如果参数值超出 -32,768 到 32,767 的范围,或者由三个参数指定(无论是直接还是通过表达式指定)的日期超出了可以接受的日期范围,就会发生错误。
22.DateValue函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 'DateValue 函数 7 '返回 Date 子类型的 Variant。 8 9 'DateValue(date) 10 'date 参数应是字符串表达式,表示从 100 年 1 月 1 日到 9999 年 12 月 31 日中的一个日期。但是,date 也可以是表示上述范围内的日期、时间或日期时间混合的任意表达式。 11 12 '说明 13 '如果 date 参数包含时间信息,则 DateValue 不会返回时间信息。但是如果 date 包含无效的时间信息(如 "89:98"),就会出现错误。 14 '如果 date 是某一字符串,其中仅包含由有效的日期分隔符分隔开的数字,则 DateValue 将会根据为系统指定的短日期格式识别月、日和年的顺序。DateValue 还会识别包含月份名称(无论是全名还是缩写)的明确日期。例如,除了能够识别 12/30/1991 和 12/30/91 之外,DateValue 还能识别 December 30, 1991 和 Dec 30, 1991。 15 '如果省略了 date 的年份部分,DateValue 将使用计算机系统日期中的当前年份。 16 '下面的示例利用 DateValue 函数将字符串转化成日期。也可以利用日期文字直接将日期分配给 Variant 变量, 例如, MyDate = #9/11/63#. 17 18 Dim MyDate 19 MyDate = DateValue("September 11, 2016") ' 返回日期。 20 MsgBox MyDate
23.Day函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 'Day 函数 7 '返回 1 到 31 之间的一个整数(包括 1 和31),代表某月中的一天。 8 9 Day(date) 10 '是任意可以代表日期的表达式。如果 date 参数中包含 Null,则返回 Null。 11 '下面例子利用 Day 函数得到一个给定日期月的天数: 12 Dim MyDay 13 MyDay = Day("October 21, 2016") '仅仅返回当天的日期,即21号。 14 MsgBox MyDay
24.Eval函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 'Eval 函数 7 '计算一个表达式的值并返回结果。 8 '[result = ]Eval(expression) 9 '参数 10 'result 11 '可选项。是一个变量,用于接受返回的结果。如果未指定结果,应考虑使用 Execute 语句代替。 12 'expression 13 '必选项。可以是包含任何有效 VBScript 表达式的字符串。 14 '说明 15 '在 VBScript 中,x = y 可以有两种解释。第一种方式是赋值语句,将 y 的值赋予 x。第二种解释是测试 x 和 y 是否相等。如果相等,result 为 True;否则 result 为 False。Eval 方法总是采用第二种解释,而 Execute 语句总是采用第一种。 16 '注意 在Microsoft JScript 中不存在这种比较与赋值的混淆,因为赋值运算符 (=) 与比较运算符 (==) 不同。 17 '下面的例子说明了 Eval 函数的用法: 18 19 Sub GuessANumber 20 Dim Guess, RndNum 21 RndNum = Int((100) * Rnd(1) + 1) 22 Guess = CInt(InputBox("Enter your guess:",,0)) 23 Do 24 If Eval("Guess = RndNum") Then 25 MsgBox "祝贺你!猜对了!" 26 Exit Sub 27 Else 28 Guess = CInt(InputBox("对不起,请再试一次",,0)) 29 End If 30 Loop Until Guess = 0 31 End Sub
25.Exp函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 'Exp 函数 7 '返回 e(自然对数的底)的幂次方。 8 9 'Exp(number) 10 'number 参数可以是任意有效的数值表达式。 11 12 '说明 13 '如果 number 参数超过 709.782712893,则出现错误。常数 e 的值约为 2.718282。 14 15 '注意 Exp 函数完成 Log 函数的反运算,并且有时引用为反对数形式。 16 '下面的示例利用 Exp 函数返回 e 的幂次方: 17 18 Dim MyAngle, MyHSin ' 用弧度定义角。 19 MyAngle = 1.3 ' 计算双曲线的正弦。 20 MyHSin = (Exp(MyAngle) - Exp(-1 * MyAngle)) / 2 21 MsgBox MyHSin
26.Filter函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 6 'Filter 函数 7 '返回下标从零开始的数组,其中包含以特定过滤条件为基础的字符串数组的子集。 8 'Filter(InputStrings, Value[, Include[, Compare]]) 9 '参数 10 'InputStrings 11 '必选项。一维数组,要在其中搜索字符串。 12 'Value 13 '必选项。要搜索的字符串。 14 'Include 15 '可选项。Boolean 值,指定返回的子字符串是否包含 Value。如果 Include 为 True,Filter 将返回包含子字符串 Value 的数组子集。如果 Include 为 False,Filter 将返回不包含子字符串 Value 的数组子集。 16 'Compare 17 '可选项。数字值指出使用的比较字符串类型。请参阅值设置部分。 18 '设置 19 'Compare 参数可以有以下值: 20 '常数 值 描述 21 'vbBinaryCompare 0 执行二进制比较。 22 'vbTextCompare 1 执行文本比较。 23 '说明 24 '如果在 InputStrings 中没有找到与 Value 匹配的值,Filter 将返回空数组。如果 InputStrings 为 Null 或者不是一维数组,则会发生错误。 25 '由Filter函数返回的数组仅包含足以包含匹配项数目的元素。 26 '下面例子利用Filter函数返回包含搜索条件 "Mon" 的数组: 27 Dim MyIndex 28 Dim MyArray (3) 29 MyArray(0) = "Sunday" 30 MyArray(1) = "Monday" 31 MyArray(2) = "Tuesday" 32 MyIndex = Filter(MyArray, "Mon") 'MyIndex(0) 包含 "Monday"。 33 MsgBox MyIndex(0)
27.FormatCurrency函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 'FormatCurrency 函数 6 '返回表达式,此表达式已被格式化为货币值(使用系统控制面板中定义的货币符号)。 7 'FormatCurrency( 8 ' expression[,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]] 9 ') 10 '参数 11 'Expression 12 '必选项。要被格式化的表达式。 13 'NumDigitsAfterDecimal 14 '可选项。指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。 15 'IncludeLeadingDigit 16 '可选项。三态常数,指示是否显示小数值小数点前面的零。有关数值,请参阅“设置”部分。 17 'UseParensForNegativeNumbers 18 '可选项。三态常数,指示是否将负值置于括号中。有关数值,请参阅“设置”部分。 19 'GroupDigits 20 '可选项。三态常数,指示是否使用计算机区域设置中指定的数字分组符号将数字分组。有关数值,请参阅“设置”部分。 21 '设置 22 'IncludeLeadingDigit、UseParensForNegativeNumbers 和 GroupDigits 参数可以有以下值: 23 '常数 值 描述 24 'TristateTrue -1 True 25 'TristateFalse 0 False 26 'TristateUseDefault -2 使用计算机区域设置中的设置。 27 '说明 28 '当省略一个或多个可选项参数时,由计算机区域设置提供被省略参数的值。与货币值相关的货币符号的位置由系统的区域设置决定。 29 '注意 除“显示起始的零”设置来自区域设置的“数字”附签外,所有其他设置信息均取自区域设置的“货币”附签。 30 '下面例子利用 FormatCurrency 函数把 expression 格式化为 currency 并且赋值给 MyCurrency: 31 Dim MyCurrency 32 MyCurrency = FormatCurrency(1000) 'MyCurrency 包含 $1000.00 。 33 MsgBox MyCurrency
28.FormatDateTime函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 'FormatDateTime 函数 6 '返回表达式,此表达式已被格式化为日期或时间。 7 'FormatDateTime(Date[, NamedFormat]) 8 '参数 9 'Date 10 '必选项。要被格式化的日期表达式。 11 'NamedFormat 12 '可选项。指示所使用的日期/时间格式的数值,如果省略,则使用 vbGeneralDate。 13 '设置 14 'NamedFormat 参数可以有以下值: 15 '常数 值 描述 16 'vbGeneralDate 0 显示日期和/或时间。如果有日期部分,则将该部分显示为短日期格式。如果有时间部分,则将该部分显示为长时间格式。如果都存在,则显示所有部分。 17 'vbLongDate 1 使用计算机区域设置中指定的长日期格式显示日期。 18 'vbShortDate 2 使用计算机区域设置中指定的短日期格式显示日期。 19 'vbLongTime 3 使用计算机区域设置中指定的时间格式显示时间。 20 'vbShortTime 4 使用 24 小时格式 (hh:mm) 显示时间。 21 '说明 22 '下面例子利用 FormatDateTime 函数把表达式格式化为长日期型并且把它赋给 MyDateTime: 23 Function GetCurrentDate 24 'FormatDateTime 把日期型格式化为长日期型。 25 GetCurrentDate = FormatDateTime(Date, 1) 26 End Function
29.FormatNumber函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 'FormatNumber 函数 6 '返回表达式,此表达式已被格式化为数值。 7 'FormatNumber( 8 ' expression [,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]] 9 ') 10 'Arguments 11 'Expression 12 '必选项。要被格式化的表达式。 13 'NumDigitsAfterDecimal 14 '可选项。指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。 15 'IncludeLeadingDigit 16 '可选项。三态常数,指示是否显示小数值小数点前面的零。有关数值,请参阅“设置”部分。 17 'UseParensForNegativeNumbers 18 '可选项。三态常数,指示是否将负值置于括号中。有关数值,请参阅“设置”部分。 19 'GroupDigits 20 '可选项。三态常数,指示是否使用计算机区域设置中指定的数字分组符号将数字分组。有关数值,请参阅“设置”部分。 21 '设置 22 'IncludeLeadingDigit、UseParensForNegativeNumbers 和 GroupDigits 参数可以有以下值: 23 '常数 值 描述 24 'TristateTrue -1 True 25 'TristateFalse 0 False 26 'TristateUseDefault -2 使用计算机区域设置中的设置。 27 '说明 28 '当省略一个或多个可选项参数时,由计算机区域设置提供被省略参数的值。 29 '注意 所有设置信息均取自区域设置的“数字”附签。 30 '下面例子利用 FormatNumber 函数把数值格式化为带四位小数点的数: 31 Function FormatNumberDemo 32 Dim MyAngle, MySecant, MyNumber 33 MyAngle = 1.3 ' 用弧度定义角。 34 MySecant = 1 / Cos(MyAngle) ' 计算正割值。 35 FormatNumberDemo = FormatNumber(MySecant,4) ' 把 MySecant 格式化为带四位小数点的数。 36 End Function
30.FormatPercent函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 'FormatPercent 函数 6 '返回表达式,此表达式已被格式化为尾随有 % 符号的百分比(乘以 100 )。 7 'FormatPercent(expression[,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]]) 8 'FormatPercent 函数的语法有以下参数: 9 '参数 10 'Expression 11 '必选项。要被格式化的表达式。 12 'NumDigitsAfterDecimal 13 '可选项。指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置。 14 'IncludeLeadingDigit 15 '可选项。三态常数,指示是否显示小数值小数点前面的零。有关数值,请参阅“设置”部分。 16 'UseParensForNegativeNumbers 17 '可选项。三态常数,指示是否将负值置于括号中。有关数值,请参阅“设置”部分。 18 'GroupDigits 19 '可选项。三态常数,指示是否使用计算机区域设置中指定的数字分组符号将数字分组。有关数值,请参阅“设置”部分。 20 '设置 21 'IncludeLeadingDigit、UseParensForNegativeNumbers 和 GroupDigits 参数可以有以下值: 22 '常数 值 描述 23 'TristateTrue -1 True 24 'TristateFalse 0 False 25 'TristateUseDefault -2 使用计算机区域设置中的设置。 26 '说明 27 '当省略一个或多个可选项参数时,由计算机区域设置提供被省略参数的值。 28 '注意 所有设置信息均取自区域设置的“数字”附签。 29 '下面例子利用 FormatPercent 函数把表达式格式化为百分数: 30 Dim MyPercent 31 MyPercent = FormatPercent(2/32) 'MyPercent 包含 6.25%。 32 MsgBox MyPercent
31.GetLocale函数
1 Option Explicit 2 '@author :yinzhengjie 3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/ 4 'EMAIL:y1053419035@qq.com 5 'GetLocale 函数 6 '返回当前区域设置 ID 值。 7 'GetLocale() 8 '说明 9 'locale 是用户参考信息集合,与用户的语言、国家/地区和文化传统有关。locale 决定键盘布局、字母排序顺序和日期、时间、数字与货币格式。 10 '返回值可以是任意一个 32-位 的值,如区域设置 ID所示: 11 '下面举例说明 GetLocale 函数的用法。要使用该代码,请复制标准HTML 文件中 <BODY> 标志之间的所有内容。 12 'Enter Date in UK format: <input type="text" id="UKDate" size="20"><p> 13 'Here's the US equivalent: <input type="text" id="USdate" size="20"><p> 14 '<input type="button" value="Convert" id="button1"><p> 15 'Enter a price in German: <input type="text" id="GermanNumber" size="20"> 16 '<p> 17 'Here's the UK equivalent: <input type="text" id="USNumber" size="20"><p> 18 '<input type="button" value="Convert" id="button2"><p> 19 '<script language="vbscript"> 20 Dim currentLocale 21 ' 获取当前的区域设置 22 currentLocale = GetLocale 23 24 Sub Button1_onclick 25 Dim original 26 original = SetLocale("en-gb") 27 mydate = CDate(UKDate.value) 28 ' IE 始终将区域设置设置为“美国英语”, 29 ' 所以请使用 currentLocale 变量将区域设置设置为“美国英语”。 30 original = SetLocale(currentLocale) 31 USDate.value = FormatDateTime(mydate,vbShortDate) 32 End Sub 33 34 Sub button2_onclick 35 Dim original 36 original = SetLocale("de") 37 myvalue = CCur(GermanNumber.value) 38 original = SetLocale("en-gb") 39 USNumber.value = FormatCurrency(myvalue) 40 End Sub 41 42 '</script>