VBS脚本编程(3)——常用函数

数据类型转换函数

1、Hex 函数
返回表示十六进制数字值的字符串。
Hex(number)
number 参数是任意有效的表达式。
说明
如果 number 参数不是整数,则在进行运算前将其四舍五入为最接近的整数。
如果 number 是
Hex 返回
Null
Null。
Empty
零 (0)。
其他数
最大到八位的十六进制字符。
可以通过在数字前面添加前缀 &H 来表示十六进制数。例如,在十六进制计数法中,&H10 表示十进制数 16。
下面的示例利用 Hex 函数返回数字的十六进制数:
Dim MyHex
MyHex = Hex(5)   ' 返回 5。
MyHex = Hex(10)   ' 返回A。
MyHex = Hex(459)   ' 返回 1CB
 
2、Oct 函数
返回表示数字八进制值的字符串。
Oct(number)
number 参数是任意有效的表达式。
说明
如果 number 参数不是整数,则在进行运算前,将其四舍五入到最接近的整数。
如果 number 是
Oct 返回
Null
Null。
Empty
零 (0)。
任意其他数字
最大可到 11 位的八进制字符。
用户也可以通过直接在数前加上 &O 表示八进制数。例如,&O10 为十进制数 8 的八进制表示法。
下面的示例利用 Oct 函数返回数值的八进制数:
Dim MyOct
MyOct = Oct(4)     ' 返回 4。
MyOct = Oct(8)     ' 返回 10。
MyOct = Oct(459)   ' 返回 713。
 
3、Asc 函数
返回与字符串的第一个字母对应的 ANSI 字符代码。
Asc(string)
string 参数是任意有效的字符串表达式。如果 string 参数未包含字符,则将发生运行时错误。
 
说明
下面例子中, Asc 返回每一个字符串首字母的 ANSI 字符代码:
Dim MyNumber
MyNumber = Asc("A")      '返回 65。
MyNumber = Asc("a")      '返回 97。
MyNumber = Asc("Apple")  '返回 65。
 
4、Chr 函数
返回与指定的 ANSI 字符代码相对应的字符。
Chr(charcode)
charcode 参数是可以标识字符的数字。
 
说明
从 0 到 31 的数字表示标准的不可打印的 ASCII 代码。例如,Chr(10) 返回换行符。
下面例子利用 Chr 函数返回与指定的字符代码相对应的字符:
Dim MyChar
MyChar = Chr(65)    '返回 A。
MyChar = Chr(97)    '返回 a。
MyChar = Chr(62)    '返回 >。
MyChar = Chr(37)    '返回 %。
 
扩展:ANSI和ASCII的区别、Unicode和UTF-8区别
ASCII码
全名是American Standard Code for Information Interchange, 叫做“美国信息交换标准码”。ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。ASCII码是目前最普及的一种字符编码,它扎根于我们的互联网,操作系统,键盘,打印机,文件字体和打印机等。
ANSI码
ANSI编码是一种对ASCII码的拓展。ANSI编码用0x00~0x7f (即十进制下的0到127)范围的1 个字节来表示 1 个英文字符,超出一个字节的 0x80~0xFFFF 范围来表示其他语言的其他字符。也就是说,ANSI码仅在前128(0-127)个与ASCII码相同,之后的字符全是某个国家语言的所有字符。值得注意的是,两个字节最多可以存储的字符数目是2的16次方,即65536个字符,这对于一个语言的字符来说,绝对够了。还有ANSI编码其实包括很多编码:中国制定了GB2312编码,用来把中文编进去,另外,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里,各国有各国的标准。受制于当时的条件,不同语言之间的ANSI码之间不能互相转换,这就会导致在多语言混合的文本中会有乱码。
Unicode编码
为了解决不同国家ANSI编码的冲突问题,Unicode应运而生:如果全世界每一个符号都给予一个独一无二的编码,那么乱码问题就会消失。这就是Unicode,就像它的名字都表示的,这是一种所有符号的编码。
Unicode标准也在不断发展,但最常用的是用两个字节表示一个字符(如果要用到非常偏僻的字符,就需要4个字节)。现代操作系统和大多数编程语言都直接支持Unicode。
但是问题在于,原本可以用一个字节存储的英文字母在Unicode里面必须存两个字节(规则就是在原来英文字母对应ASCII码前面补0),这就产生了浪费。那么有没有一种既能消除乱码,又能避免浪费的编码方式呢?答案就是UTF-8!
UTF-8编码
这是一种变长的编码方式:它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度,当字符在ASCII码的范围时,就用一个字节表示,保留了ASCII字符一个字节的编码做为它的一部分,如此一来UTF-8编码也可以是为视为一种对ASCII码的拓展。值得注意的是unicode编码中一个中文字符占2个字节,而UTF-8一个中文字符占3个字节。从unicode到uft-8并不是直接的对应,而是要过一些算法和规则来转换。
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件。
 
 
5、CStr 函数
返回表达式,该表达式已被转换为 String 子类型的 Variant
说明
通常,可以使用子类型转换函数书写代码,以显示某些操作的结果应被表示为特定的数据类型,而不是默认类型。例如,使用 CStr 强制将结果表示为 String
CStr 函数用于替代 Str 函数来进行从其他数据类型到 String 子类型的国际公认的格式转换。例如对十进制分隔符的识别取决于系统的区域设置。
expression 根据下表决定返回的数据:
如果 expression 为
CStr 返回
Boolean
字符串,包含 True 或 False。
Date
字符串,包含系统的短日期格式日期。
Null
运行时错误。
Empty
零长度字符串 ("")。
Error
字符串,包含跟随有错误号码的单词 Error。
其他数值
字符串,包含此数字。
下面的示例利用 CStr 函数把数字转换为 String:
Dim MyDouble, MyString
MyDouble = 437.324         ' MyDouble 是双精度值。
MyString = CStr(MyDouble)  ' MyString 包含 "437.324"。
 
6、CInt 函数
CInt(expression)
expression 参数是任意有效的表达式。
说明
通常,可以使用子类型转换函数书写代码,以显示某些操作的结果应被表示为特定的数据类型,而不是默认类型。例如,在出现货币、单精度或双精度运算的情况下,使用 CIntCLng 强制执行整数运算。
CInt 函数用于进行从其他数据类型到 Integer 子类型的国际公认的格式转换。例如对十进制分隔符(如千分符)的识别,可能取决于系统的区域设置。
如果 expression 在 Integer 子类型可接受的范围之外,则发生错误。
下面的示例利用 CInt 函数把值转换为 Integer:
Dim MyDouble, MyInt
MyDouble = 2345.5678      ' MyDouble 是 Double。
MyInt = CInt(MyDouble)    ' MyInt 包含 2346。
 
其他的数据类型转换函数:
CBool 、CByte 、CCur 、CDate 、CLng 、CSng 、CDbl
不做讲解
 
 

数学计算函数

1、Abs 函数
返回数字的绝对值
Abs(number)
number 参数可以是任意有效的数值表达式。如果 number 包含 Null,则返回 Null;如果是未初始化变量,则返回 0。
 
2、Rnd 函数
返回一个随机数。
Rnd[(number)]
number 参数可以是任意有效的数值表达式。
说明
Rnd 函数返回一个小于 1 但大于或等于 0 的值。number 的值决定了 Rnd 生成随机数的方式:
如果 number 为
Rnd 生成
小于零
每次都相同的值,使用 number 作为种子。
大于零
序列中的下一个随机数。
等于零
最近生成的数。
省略
序列中的下一个随机数。
因每一次连续调用 Rnd 函数时都用序列中的前一个数作为下一个数的种子,所以对于任何最初给定的种子都会生成相同的数列。
在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生成器具有基于系统计时器的种子。
要产生指定范围的随机整数,请使用以下公式:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
这里, upperbound 是此范围的上界,而 lowerbound 是此范围内的下界。
注意   要重复随机数的序列,请在使用数值参数调用 Randomize 之前,立即用负值参数调用 Rnd。使用同样 number 值的 Randomize 不能重复先前的随机数序列。
 
3、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。
 
区别:
Int()按照数轴向下取整;
CInt()四舍五入,取了最近的一个整数;
Fix()无论什么情况,只取整数部分。
 
4、Round 函数
返回按指定位数进行四舍五入的数值。
Round(expression[, numdecimalplaces])
参数
Expression
必选项。数值表达式被四舍五入。
Numdecimalplaces
可选项。数字表明小数点右边有多少位进行四舍五入。如果省略,则 Round 函数返回整数。
说明
下面的示例利用 Round 函数将数值四舍五入到两位小数:
Dim MyVar, pi
pi = 3.14159
MyVar = Round(pi, 2) 'MyVar contains 3.14。
 
5、Sgn 函数
返回表示数字符号的整数。
Sgn(number)
number 参数可以是任意有效的数值表达式。
返回值
Sgn 函数有如下返回值:
如果 number 为
Sgn 返回
大于零
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。
 
6、Sqr 函数
返回数值的平方根。
Sqr(number)
number 参数可以是任意有效的大于或等于零的数值表达式。
 
7、Exp 函数
返回 e(自然对数的底)的幂次方。
Exp(number)
number 参数可以是任意有效的数值表达式。
 
8、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
 
9、三角函数
Sin 函数 返回某个角的正弦值。
Cos 函数 返回某个角的余弦值。
Tan 函数 返回某个角的正切值。
Atn 函数 返回某个角的反正切值。
 
10、派生数学函数
下列是由固有数学函数派生的非固有数学函数:
 

日期函数

1、Now 函数
根据计算机系统设定的日期和时间返回当前的日期和时间值。
 
2、Date 函数
返回当前系统日期。
 
3、DateAdd 函数
返回已添加指定时间间隔的日期。
DateAdd(interval, number, date)
参数
interval
必选项。字符串表达式,表示要添加的时间间隔。有关数值,请参阅“设置”部分。
number
必选项。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。
date
必选项。Variant 或要添加 interval 的表示日期的文字。
设置
interval 参数可以有以下值:
设置
描述
yyyy
q
季度
m
y
一年的日数
d
w
一周的日数
ww
h
小时
n
分钟
s
说明
可用 DateAdd 函数从日期中添加或减去指定时间间隔。例如可以使用 DateAdd 从当天算起 30 天以后的日期或从现在算起 45 分钟以后的时间。要向 date 添加以“日”为单位的时间间隔,可以使用“一年的日数”(“y”)、“日”(“d”)或“一周的日数”(“w”)。
DateAdd 函数不会返回无效日期。如下示例将 95 年 1 月 31 日加上一个月:
NewDate = DateAdd("m", 1, "31-Jan-95")
在这个示例中,DateAdd 返回 95 年 2 月 28 日,而不是 95 年 2 月 31 日。如果 date 为 96 年 1 月 31 日,则返回 96 年 2 月 29 日,这是因为 1996 是闰年。
如果计算的日期是在公元 100 年之前,则会产生错误。
如果 number 不是 Long 型值,则在计算前四舍五入为最接近的整数。
 
4、DateDiff 函数
返回两个日期之间的时间间隔。
DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])
DateDiff 函数的语法有以下参数:
参数
interval
必选项。字符串表达式表示用于计算 date1date2 之间的时间间隔。有关数值,请参阅“设置”部分。
date1, date2
必选项。日期表达式。用于计算的两个日期。
Firstdayofweek
可选项。指定星期中第一天的常数。如果没有指定,则默认为星期日。有关数值,请参阅“设置”部分。
Firstweekofyear
可选项。指定一年中第一周的常数。如果没有指定,则默认为 1 月 1 日所在的星期。有关数值,请参阅“设置”部分。
设置
interval 参数的设置参考上一函数
 
firstdayofweek 参数可以有以下值:
常数
描述
vbUseSystemDayOfWeek
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
由在新的一年中第一个完整的周开始。
说明
DateDiff 函数用于判断在两个日期之间存在的指定时间间隔的数目。例如可以使用 DateDiff 计算两个日期相差的天数,或者当天到当年最后一天之间的星期数。
要计算 date1date2 相差的天数,可以使用“一年的日数”(“y”)或“日”(“d”)。当 interval 为“一周的日数”(“w”)时,DateDiff 返回两个日期之间的星期数。如果 date1 是星期一,则 DateDiff 计算到 date2 之前星期一的数目。此结果包含 date2 而不包含 date1。如果 interval 是“周”(“ww”),则 DateDiff 函数返回日历表中两个日期之间的星期数。函数计算 date1date2 之间星期日的数目。如果 date2 是星期日,DateDiff 将计算 date2,但即使 date1 是星期日,也不会计算 date1
如果 date1 晚于 date2,则 DateDiff 函数返回负数。
firstdayofweek 参数会对使用“w”和“ww”间隔符号的计算产生影响。
如果 date1date2 是日期文字,则指定的年度会成为日期的固定部分。但是如果 date1date2 被包括在引号 (" ") 中并且省略年份,则在代码中每次计算 date1date2 表达式时,将插入当前年份。这样就可以编写适用于不同年份的程序代码。
interval 为“年”(“yyyy”)时,比较 12 月 31 日和来年的 1 月 1 日,虽然实际上只相差一天,DateDiff 返回 1 表示相差一个年份。
下面的示例利用 DateDiff 函数显示今天与给定日期之间间隔天数:
Function DiffADate(theDate) DiffADate = "从当天开始的天数:" & DateDiff("d", Now, theDate) End Function
 
5、Year 函数 返回一个代表某年的整数。
6、Mouth 函数 返回 1 到 12 之间的一个整数(包括 1 和 12),代表一年中的某月。
7、Weekday 函数 返回代表一星期中某天的整数。(星期日为0,星期一为2)
8、Day 函数 返回 1 到 31 之间的一个整数(包括 1 和31),代表某月中的一天。
9、Hour 函数 返回 0 到 23 之间的一个整数(包括 0 和 23),代表一天中的某一小时。
10、Minute 函数 返回 0 到 59 之间的一个整数(包括 0 和59),代表一小时内的某一分钟。
11、Second 函数 返回 0 到 59 之间的一个整数(包括 1 和 59),代表一分钟内的某一秒。
 
 

判断函数

1、IsArray 函数 返回 Boolean 值指明某变量是否为数组。
2、IsDate 函数 返回 Boolean 值指明某表达式是否可以转换为日期。
3、IsEmpty 函数 返回 Boolean 值指明变量是否已初始化。
4、IsNull 函数 返回 Boolean 值,指明表达式是否不包含任何有效数据 (Null)。
5、IsNumber 函数 返回 Boolean 值指明表达式的值是否为数字。
6、IsObject 函数 返回 Boolean 值指明表达式是否引用了有效的 Automation 对象。
 
 

字符串处理函数

1、LCase 函数
返回字符串的小写形式。
LCase(string)
string 参数是任意有效的字符串表达式。如果 string 参数中包含 Null,则返回 Null
说明
仅大写字母转换成小写字母;所有小写字母和非字母字符保持不变。
 
2、UCase 函数
返回字符串的大写形式。
UCase(string)
string 参数是任意有效的字符串表达式。如果 string 参数中包含 Null,则返回 Null
说明
只有小写字母被转换成大写字母;所有大写字母和非字母字符均保持不变。
 
3、Len 函数
返回字符串内字符的数目,或是存储一变量所需的字节数。
Len(string | varname)
参数
string
任意有效的字符串表达式。如果 string 参数包含 Null,则返回 Null
Varname
任意有效的变量名。如果 varname 参数包含 Null,则返回 Null
说明
下面的示例利用 Len 函数返回字符串中的字符数目:
 
Dim MyString
MyString = Len("VBSCRIPT") 'MyString 包含 8。
注意   LenB 函数与包含在字符串中的字节数据一起使用。LenB 不是返回字符串中的字符数,而是返回用于代表字符串的字节数。
 
4、Mid 函数
从字符串中返回指定数目的字符。
Mid(string, start[, length])
参数
string
字符串表达式,从中返回字符。如果 string 包含 Null,则返回 Null
Start
string 中被提取的字符部分的开始位置。如果 start 超过了 string 中字符的数目,Mid 将返回零长度字符串 ("")。
Length
要返回的字符数。如果省略或 length 超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到字符串结束的所有字符。
说明
要判断 string 中字符的数目,可使用 Len 函数。
下面的示例利用 Mid 函数返回字符串中从第四个字符开始的六个字符:
Dim MyVar
MyVar = Mid("VB脚本is fun!", 4, 6) 'MyVar 包含 "Script"。
注意   MidB 函数与包含在字符串中的字节数据一起使用。其参数不是指定字符数,而是字节数。
 
举例:根据年份计算生肖
shenxiao = "鼠牛虎兔龙蛇马羊猴鸡狗猪"
intYear = InputBox("请输入年份")
n = (intYear-3) Mod 12
strSX = Mid(shenxiao,n,1)
MsgBox intYear&"年是"&strSX&"年"
 
5、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"。
注意   LeftB 函数与包含在字符串中字节数据一起使用。length 不是指定返回的字符串数,而是字节数。
 
6、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"。
注意   RightB 函数用于字符串中的字节数据,length 参数指定返回的是字节数目,而不是字符数目。
 
7、LTrim、RTrim、Trim函数
回不带前导空格 (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"。
 
8、Space 函数
回由指定数目的空格组成的字符串。
Space(number)
number 参数为字符串中用户所需的空格数。
说明
下面的示例利用 Space 函数返回由指定数目空格组成的字符串:
Dim MyString
MyString = Space(10)   ' 返回具有 10 个空格的字符串。
MyString = "Hello" & Space(10) & "World" ' 在两个字符串之间插入 10 个空格。
 
9、join 函数
返回一个字符串,此字符串由包含在数组中的许多子字符串连接创建。
Join(list[,delimiter])
参数
list
必选项。包含要连接的子字符串一维数组。
Delimiter
可选项。在返回字符串中用于分隔子字符串的字符。如果省略,将使用空字符 ("")。如果 delimiter 是零长度字符串,则在同一列表中列出全部项,没有分界符。
说明
下面的示例利用 Join 函数联合 MyArray 的子字符串:
Dim MyString
Dim MyArray(3)
MyArray(0) = "Mr."
MyArray(1) = "John "
MyArray(2) = "Doe "
MyArray(3) = "III"
MyString = Join(MyArray) 'MyString 包含 "Mr. John Doe III"。
 
10、InStr 函数
返回某字符串在另一字符串中第一次出现的位置。
InStr([start, ]string1, string2[, compare])
参数
start
可选项。数值表达式,用于设置每次搜索的开始位置。如果省略,将从第一个字符的位置开始搜索。如果 start 包含 Null,则会出现错误。如果已指定 compare,则必须要有 start 参数。
string1
必选项。接受搜索的字符串表达式。
string2
必选项。要搜索的字符串表达式。
compare
可选项。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。如果省略,将执行二进制比较。
设置
compare 参数可以有以下值:
常数
描述
vbBinaryCompare
0
执行二进制比较。
vbTextCompare
1
执行文本比较。
返回值
InStr 函数返回以下值:
如果
InStr 返回
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")。
注意   InStrB 函数使用包含在字符串中的字节数据,所以 InStrB 返回的不是一个字符串在另一个字符串中第一次出现的字符位置,而是字节位置。
 
11、InStrRev 函数
返回某字符串在另一个字符串中出现的从结尾计起的位置。
InStrRev(string1, string2[, start[, compare]])
参数
string1
必选项。接受搜索的字符串表达式。
string2
必选项。被搜索的字符串表达式。
Start
可选项。数值表达式,用于设置每次搜索的开始位置。如果省略,则默认值为 -1,表示从最后一个字符的位置开始搜索。如果 start 包含 Null,则出现错误
compare
可选项。在计算子字符串时,指示要使用的比较类型的数值。如果省略,将执行二进制比较。有关数值,请参阅“设置”部分。
设置
compare 参数可以有以下值:
常数
Value
描述
vbBinaryCompare
0
执行二进制比较。
vbDatabaseCompare
2
执行基于包含在数据库(在此数据库中执行比较)中的信息的比较。
返回值
InStrRev 返回值同InStr函数
说明
下面的示例利用 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。
注意   InStrRev 函数的语法与 InStr 函数的语法并不一样。
 
12、StrComp 函数
返回一个表明字符串比较结果的值。
StrComp(string1, string2[, compare])
参数
string1
必选项。任意有效的字符串表达式。
string2
必选项。任意有效的字符串表达式。
Compare
可选项。指示在计算字符串时使用的比较类型的数值。如果省略,则执行二进制比较。有关数值,请参阅“设置”部分。
设置
compare 参数可以有以下值:
常数
描述
vbBinaryCompare
0
执行二进制比较。
vbTextCompare
1
执行文本比较。
返回值
StrComp 函数有以下返回值:
如果
StrComp 返回
string1 小于 string2
-1
string1 等于 string2
0
string1 大于 string2
1
string1 或 string2 为 Null
Null
说明
下面的示例利用 StrComp 函数返回字符串比较的结果。如果第三个参数为 1 执行文本比较;如果第三个参数为 0 或者省略执行二进制比较。
Dim MyStr1, MyStr2, MyComp
MyStr1 = "ABCD": MyStr2 = "abcd"   '定义变量。
MyComp = StrComp(MyStr1, MyStr2, 1)   ' 返回 0。
MyComp = StrComp(MyStr1, MyStr2, 0)   ' 返回 -1。
MyComp = StrComp(MyStr2, MyStr1)   ' 返回 1。
 

对象处理函数

1、MsgBox 函数
在对话框中显示消息,等待用户单击按钮,并返回一个值指示用户单击的按钮。
MsgBox(prompt[, buttons][, title][, helpfile, context])
参数
prompt
作为消息显示在对话框中的字符串表达式。prompt 的最大长度大约是 1024 个字符,这取决于所使用的字符的宽度。如果 prompt 中包含多个行,则可在各行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或回车换行符的组合 (Chr(13) & Chr(10)) 分隔各行。
Buttons
数值表达式,是表示指定显示按钮的数目和类型、使用的图标样式,默认按钮的标识以及消息框样式的数值的总和。有关数值,请参阅“设置”部分。如果省略,则 buttons 的默认值为 0。
Title
显示在对话框标题栏中的字符串表达式。如果省略 title,则将应用程序的名称显示在标题栏中。
Helpfile
字符串表达式,用于标识为对话框提供上下文相关帮助的帮助文件。如果已提供 helpfile,则必须提供 context。在 16 位系统平台上不可用。
Context
数值表达式,用于标识由帮助文件的作者指定给某个帮助主题的上下文编号。如果已提供 context,则必须提供 helpfile。在 16 位系统平台上不可用。
设置
buttons 参数可以有以下值:
常数
描述
vbOKOnly
0
只显示确定按钮。
vbOKCancel
1
显示确定取消按钮。
vbAbortRetryIgnore
2
显示放弃重试忽略按钮。
vbYesNoCancel
3
显示取消按钮。
vbYesNo
4
显示按钮。
vbRetryCancel
5
显示重试取消按钮。
vbCritical
16
显示临界信息图标。
vbQuestion
32
显示警告查询图标。
vbExclamation
48
显示警告消息图标。
vbInformation
64
显示信息消息图标。
vbDefaultButton1
0
第一个按钮为默认按钮。
vbDefaultButton2
256
第二个按钮为默认按钮。
vbDefaultButton3
512
第三个按钮为默认按钮。
vbDefaultButton4
768
第四个按钮为默认按钮。
vbApplicationModal
0
应用程序模式:用户必须响应消息框才能继续在当前应用程序中工作。
vbSystemModal
4096
系统模式:在用户响应消息框前,所有应用程序都被挂起。
第一组值 (0 - 5) 用于描述对话框中显示的按钮类型与数目;第二组值 (16, 32, 48, 64) 用于描述图标的样式;第三组值 (0, 256, 512) 用于确定默认按钮;而第四组值 (0, 4096) 则决定消息框的样式。在将这些数字相加以生成 buttons 参数值时,只能从每组值中取用一个数字。
返回值
MsgBox 函数有以下返回值:
常数
按钮
vbOK
1
确定
vbCancel
2
取消
vbAbort
3
放弃
vbRetry
4
重试
vbIgnore
5
忽略
vbYes
6
vbNo
7
说明
如果同时提供了 helpfilecontext,则用户可以按 F1 键以查看与上下文相对应的帮助主题。
如果对话框显示取消按钮,则按 ESC 键与单击取消的效果相同。如果对话框包含帮助按钮,则有为对话框提供的上下文相关帮助。但是在单击其他按钮之前,不会返回任何值。
当MicroSoft Internet Explorer使用MsgBox函数时,任何对话框的标题总是包含"VBScript",以便于将其与标准对话框区别开来。
下面的例子演示了 MsgBox 函数的用法:
Dim MyVar MyVar = MsgBox ("Hello World!", 65, "MsgBox Example")
' MyVar 包含 1 或 2,这取决于单击的是哪个按钮。
 
2、InputBox 函数
在对话框中显示提示,等待用户输入文本或单击按钮,并返回文本框内容。
InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context])
参数
prompt
字符串表达式,作为消息显示在对话框中。prompt 的最大长度大约是 1024 个字符,这取决于所使用的字符的宽度。如果 prompt 中包含多个行,则可在各行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或回车换行符的组合 (Chr(13) & Chr(10)) 以分隔各行。
Title
显示在对话框标题栏中的字符串表达式。如果省略 title,则应用程序的名称将显示在标题栏中。
Default
显示在文本框中的字符串表达式,在没有其它输入时作为默认的响应值。如果省略 default,则文本框为空。
Xpos
数值表达式,用于指定对话框的左边缘与屏幕左边缘的水平距离(单位为缇)。如果省略 xpos,则对话框会在水平方向居中。
Ypos
数值表达式,用于指定对话框的上边缘与屏幕上边缘的垂直距离(单位为缇)。如果省略 ypos,则对话框显示在屏幕垂直方向距下边缘大约三分之一处。
Helpfile
字符串表达式,用于标识为对话框提供上下文相关帮助的帮助文件。如果已提供 helpfile,则必须提供 context
Context
数值表达式,用于标识由帮助文件的作者指定给某个帮助主题的上下文编号。如果已提供 context,则必须提供 helpfile
说明
如果同时提供了 helpfilecontext,就会在对话框中自动添加“帮助”按钮。
如果用户单击确定或按下 ENTER,则 InputBox 函数返回文本框中的内容。如果用户单击取消,则函数返回一个零长度字符串 ("")。
下面例子利用 InputBox 函数显示一输入框并且把字符串赋值给输入变量:
Dim Input
Input = InputBox("输入名字") 
MsgBox ("输入:" & Input)
posted @ 2021-06-23 17:03  Ulysses~  阅读(807)  评论(0编辑  收藏  举报