注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

零售创新,创新那些事儿,SPSS,VBA

零售创新

 
 
 

日志

 
 
关于我

新浪微博,零售创新 研究经理,数据分析师 希望和市场研究和零售业的同事共同进步! 本博客发表的都是免费或试用的资料,如果有版权问题请发邮件wangli12a@163.com联系删除。 spss excel vba blog

网易考拉推荐

VB函数集  

2007-07-05 10:53:18|  分类: VB和VBA知识 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
VB函数集

InStr 函数
返回 Variant (Long),指定一字符串在另一字符串中最先出现的位置。

语法
InStr([start, ]string1, string2[, compare])
InStr 函数的语法具有下面的参数:
部分 说明
start 可选参数。为数值表达式,设置每次搜索的起点。如果省略,将从第一个

字符的位置开始。如果 start 包含 Null,将发生错误。如果指定了 compare 参

数,则一定要有 start 参数。
string1 必要参数。接受搜索的字符串表达式。
string2 必要参数。被搜索的字符串表达式。
Compare 可选参数。指定字符串比较。如果 compare 是 Null,将发生错误。如

果省略 compare,Option Compare 的设置将决定比较的类型。
设置
compare 参数设置为:
常数 值 描述
vbUseCompareOption -1 使用Option Compare 语句设置执行一个比较。
vbBinaryCompare 0 执行一个二进制比较。
vbTextCompare 1 执行一个按照原文的比较。
vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库中信息

的比较。
返回值
如果 InStr返回
string1 为零长度 0
string1 为 Null Null
string2 为零长度 Start
string2 为 Null Null
string2 找不到 0
在 string1 中找到string2 找到的位置
start > string2 0
说明
InStrB 函数作用于包含在字符串中的字节数据。所以 InStrB 返回的是字节位置

,而不是字符位置。
----------------------------------------------------------------------

----------
InStrRev函数
描述
返回一个字符串在另一个字符串中出现的位置,从字符串的末尾算起。
语法
InstrRev(string1, string2[, start[, compare]])
InstrRev函数语法有如下几部分:
部分 描述
string1 必需的。要执行搜索的字符串表达式。
string2 必需的。要搜索的字符串表达式。
start 可选的。数值表达式,设置每次搜索的开始位置。如果忽略,则使用–1,

它表示从上一个字符位置开始搜索。如果 start 包含 Null,则产生一个错误。

compare 可选的。数字值,指出在判断子字符串时所使用的比较方法。如果忽略

,则执行二进制比较。关于其值,请参阅“设置值”部分。
设置值
compare参数值如下:
常数 值 描述
vbUseCompareOption –1 用Option Compare语句的设置值来执行比较。
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文字比较。
vbDatabaseCompare 2 只用于Microsoft Access。基于您的数据库信息执行比较


返回值
InStrRev返回值如下:
如果 InStrRev返回
string1长度为零。 0
string1为Null。 Null
string2长度为零 Start
string2为Null Null
string2没有找到。 0
string2在string1中找到。 找到匹配字符串的位置。
start > Len(string2) 0
说明
请注意,InstrRev函数的语法和Instr函数的语法不相同。
----------------------------------------------------------------------

----------
Int、Fix 函数
返回参数的整数部分。
语法
Int(number)
Fix(number)
必要的 number 参数是 Double 或任何有效的数值表达式。如果 number 包含

Null,则返回 Null。
说明
Int 和 Fix 都会删除 number 的小数部份而返回剩下的整数。
Int 和 Fix 的不同之处在于,如果 number 为负数,则 Int 返回小于或等于

number 的第一个负整数,而 Fix 则会返回大于或等于 number 的第一个负整数

。例如,Int 将 -8.4 转换成 -9,而 Fix 将 -8.4 转换成 -8。
Fix(number)
Sgn(number) * Int(Abs(number))
----------------------------------------------------------------------

----------
IPmt 函数
返回一个 Double,指定在一段时间内对定期定额支付且利率固定的年金所支付的

利息值。
语法
IPmt(rate, per, nper, pv[, fv[, type]])
IPmt 函数有下列命名参数:
部分 描述
rate 必要。Double 指定每一期的利率。例如,如果有一笔贷款年百分率 (APR)

为百分之十且按月付款的汽车贷款,则每一期的利率为 0.1/12,或 0.0083。
per 必要。Double 指定在 nper 间范围 1 中的付款周期。
nper 必要。Double 指定一笔年金的付款总期数。例如,如果在一笔为期四年的

汽车贷款中选择按月付款方式,则贷款共有 4 * 12(或 48)个付款期。
pv 必要。Double,指定未来一系列付款或收款的现值。例如,当借钱买汽车时,

向贷方所借金额为将来每月偿付给贷方款项的现值。
fv 可选。Variant 指定在付清贷款后所希望的未来值或现金结存。例如,贷款的

未来值在贷款付清后为 0 美元。但是,如果想要在 18 年间存下 50,000 美元

作为子女教育基金,那么 50,000 美元为未来值。如果省略的话,缺省值为 0。
type 可选。Variant 指定贷款到期时间。如果贷款在贷款周期结束时到期,请使

用 0。如果贷款在周期开始时到期,请使用 1。如果省略的话,缺省值为 0。
说明
年金是指在一段时间内的一系列固定现金支付。年金可以是贷款(如房屋抵押贷

款),也可以是一笔投资(如按月储蓄计划)。
在支付期间必须用相同的单位计算 rate 和 nper 参数。例如,如果 rate 用月

份计算,则 nper 也必须用月份计算。
对所有参数,用负数表示现金支出(如储蓄存款),而用正数表示现金收入(如

红利支票)。
----------------------------------------------------------------------

----------
IRR 函数
返回一个 Double,指定一系列周期性现金流(支出或收入)的内部利率。
语法
IRR(values()[, guess])
IRR 函数有下列命名参数:
部分 描述
values() 必要。Double 数组,指定现金流值。此数组必须至少含有一个负值(

支付)和一个正值(收入)。
guess 可选。Variant,指定 IRR 返回的估算值。如果省略,guess 为 0.1

(10%)。
说明
返回的内部利率是在正常的时间间隔内,一笔含有支出及收入的投资得到的利率


IRR 函数使用数组中数值的顺序来解释支付和收入的顺序。要确保支付和收入的

顺序正确。每一时期的现金流不必像年金那样固定不变。
IRR 是利用叠代进行计算。先从 guess 的值开始,IRR 反复循环进行计算,直到

精确度达到 0.00001%。如果经过 20 次反复叠代测试还不能得到结果,则 IRR

计算失败。
----------------------------------------------------------------------

----------
IsArray 函数
返回 Boolean 值,指出变量是否为一个数组。
语法
IsArray(varname)
必要的 varname 参数是一个指定变量的标识符。
说明
如果变量是数组,则 IsArray 返回 True;否则返回 False。对于包含数组的

variant 表达式来说,IsArray 尤为有用。
----------------------------------------------------------------------

----------
IsDate 函数
返回 Boolean 值,指出一个表达式是否可以转换成日期。
语法
IsDate(exdivssion)
必要的 exdivssion 参数是一个 Variant,包含日期表达式或字符串表达式,这

里的字符串表达式是可以作为日期或时间来认定的。
说明
如果表达式是一个日期,或可以作为有效日期识别,则 IsDate 返回 True;否则

返回 False。在 Microsoft Windows 中,有效日期的范围介于公元 100 年 1 月

1 日与公元 9999 年 12 月 31 日之间;其有效范围随操作系统不同而不同。
----------------------------------------------------------------------

----------
IsEmpty 函数
返回 Boolean 值,指出变量是否已经初始化。
语法
IsEmpty(exdivssion)
必要的 exdivssion 参数是一个 Variant,包含一个数值或字符串表达式。但是

,因为 IsEmpty 被用来确定个别变量是否已初始化,所以 exdivssion 参数通常

是单一变量名。
说明
如果变量未初始化或已明确设置为 Empty,则 IsEmpty 返回 True;否则返回

False。如果 exdivssion 含有多个变量,则 IsEmpty 总是返回 False。IsEmpty

只返回对 variant 表达式有意义的信息。
----------------------------------------------------------------------

----------
IsError 函数
返回 Boolean 值,指出表达式是否为一个错误值。
语法
IsError(exdivssion)
必需的 exdivssion 参数,可以是任何有效表达式。
说明
利用 CVErr 函数将实数转换成错误值就会建立错误值。IsError 函数被用来确定

一个数值表达式是否表示一个错误。如果 exdivssion 参数表示一个错误,则

IsError 返回 True;否则返回 False。
----------------------------------------------------------------------

----------
IsMissing 函数
返回 Boolean 值,指出一个可选的 Variant 参数是否已经传递给过程。
语法
IsMissing(argname)
必要的 argname 参数包含一个可选的 Variant 过程参数名。
说明
使用 IsMissing 函数来检测在调用一个程序时是否提供了可选 Variant 参数。

如果对特定参数没有传递值过去,则 IsMissing 返回 True;否则返回 False。

如果 IsMissing 对某个参数返回 True,则在其它代码中使用这个丢失的参数将

产生一个用户自定义的错误。如果对 ParamArray 参数使用 IsMissing,则函数

总是返回 False。为了检测空的 ParamArray,可试看一下数组的上界是否小于它

的下界。
注意 IsMissing 对简单数据类型(例如 Integer或Double)不起作用,因为与

Variants不同,它们没有“丢失”标志位的前提。正由于此,对于可选参数类型

,可以指定缺省值。如果调用过程时,参数被忽略,则该参数将具有该缺省值,

如下列示例中所示:
Sub MySub(Optional MyVar As String = "specialvalue")
If MyVar = "specialvalue" Then
' MyVar 被忽略。
Else
...
End Sub
在许多情况下,如果用户从函数调用中忽略,则可以通过使缺省值等于希望

MyVar 所包含的值来完全忽略 If MyVar 测试。这将使您的代码更简洁有效。
----------------------------------------------------------------------

----------
IsNull 函数
返回 Boolean 值,指出表达式是否不包含任何有效数据 (Null)。
语法
IsNull(exdivssion)
必要的 exdivssion 参数是一个 Variant,其中包含数值表达式或字符串表达式


说明
如果 exdivssion 为 Null,则 IsNull 返回 True;否则 IsNull 返回 False。

如果 exdivssion 由多个变量组成,则表达式的任何作为变量组成成分的 Null

都会使整个表达式返回 True。
Null 值指出 Variant 不包含有效数据。Null 与 Empty 不同,后者指出变量尚

未初始化。Null 与长度为零的字符串 (““) 也不同,长度为零的字符串指的是

空串。
重要 使用 IsNull 函数是为了确定表达式是否包含 Null 值的。在某些情况下,

希望表达式取值为 True,比如希望 If Var = Null 和 If Var <> Null 取值为

True,而它们总取值为 False。这是因为任何包含 Null 的表达式本身就是 Null

,所以为 False。
----------------------------------------------------------------------

----------
IsNumeric 函数
返回 Boolean 值,指出表达式的运算结果是否为数。
语法
IsNumeric(exdivssion)
必要的 exdivssion 参数是一个 Variant,包含数值表达式或字符串表达式。
说明
如果整个 exdivssion 的运算结果为数字,则 IsNumeric 返回 True;否则返回

False。
如果 exdivssion 是日期表达式,则 IsNumeric 返回 False。
----------------------------------------------------------------------

----------
IsObject 函数
返回 Boolean 值,指出标识符是否表示对象变量。
语法
IsObject(identifier)
必要的 identifier 参数是一个变量名。
说明
IsObject 只用于确定 Variant 是否属于 VarType vbObject。如果 Variant 实

际引用(或曾经引用过)一个对象,或者如果 Variant 包含 Nothing,则可能出

现这种情况。
如果 identifier 是 Object类型或任何有效的类类型,或者,如果 identifier

是 VarType vbObject 的 Variant 或用户自定义的对象,则 IsObject 返回

True;否则返回 False。即使变量已设置成 Nothing,IsObject 也仍返回 True


使用错误捕获方法可以确认对象引用是否有效。
----------------------------------------------------------------------

----------
Join函数
描述
返回一个字符串,该字符串是通过连接某个数组中的多个子字符串而创建的。
语法
Join(list[, delimiter])
Join函数语法有如下几部分:
部分 描述
list 必需的。包含被连接子字符串的一维数组。
delimiter 可选的。在返回字符串中用于分隔子字符串的字符。如果忽略该项,

则使用空格(" ")来分隔子字符串。如果delimiter是零长度字符串(""),则列表

中的所有项目都连接在一起,中间没有分隔符。
----------------------------------------------------------------------

----------
LBound 函数
返回一个 Long 型数据,其值为指定数组维可用的最小下标。
语法
LBound(arrayname[, dimension])
LBound 函数的语法包含下面部分:
部分 描述
arrayname 必需的。数组变量的名称,遵循标准的变量命名约定。
dimension 可选的;Variant (Long)。指定返回哪一维的下界。1 表示第一维,2

表示第二维,以此类推。如果省略 dimension,就认为是 1。
说明
LBound 函数与 UBound 函数一起使用,用来确定一个数组的大小。UBound 用来

确定数组某一维的上界。
对具有下述维数的数组而言,LBound 的返回值见下表:
Dim A(1 To 100, 0 To 3, -3 To 4)
语句 返回值
LBound(A, 1) 1
LBound(A, 2) 0
LBound(A, 3) -3
所有维的缺省下界都是 0 或 1,这取决于 Option Base 语句的设置。使用

Array 函数创建的数组的下界为 0;它不受 Option Base 的影响。
对于那些在 Dim 中用 To 子句来设定维数的数组而言,Private、Public、ReDim

或 Static 语句可以用任何整数作为下界。
----------------------------------------------------------------------

----------
LCase 函数
返回转成小写的 String。
语法
LCase(string)
必要的 string 参数可以是任何有效的字符串表达式。如果 string 包含 Null,

将返回 Null。
说明
只有大写的字母会转成小写;所有小写字母和非字母字符保持不变。
----------------------------------------------------------------------

----------
Left 函数
返回 Variant (String),其中包含字符串中从左边算起指定数量的字符。
语法
Left(string, length)
Left 函数的语法有下面的命名参数:
部分 说明
string 必要参数。字符串表达式其中最左边的那些字符将被返回。如果 string

包含 Null,将返回 Null。
length 必要参数;为 Variant (Long)。数值表达式,指出将返回多少个字符。

如果为 0,返回零长度字符串 ("")。如果大于或等于 string 的字符数,则返回

整个字符串。
说明
欲知 string 的字符数,使用 Len 函数。
注意 LeftB 函数作用于包含在字符串中的字节数据。所以 length 指定的是字节

数,而不是要返回的字符数。
----------------------------------------------------------------------

----------
Len 函数
返回 Long,其中包含字符串内字符的数目,或是存储一变量所需的字节数。
语法
Len(string | varname)
Len 函数的语法有下面这些部分:
部分 说明
string 任何有效的字符串表达式。如果 string 包含 Null,会返回 Null。
Varname 任何有效的变量名称。如果 varname 包含 Null,会返回 Null。如果

varname 是 Variant,Len 会视其为 String 并且总是返回其包含的字符数。
说明
两个可能的参数必须有其一(而且只能有其一)。如为用户定义类型,Len 会返

回其写至文件的大小。
注意 LenB 函数作用于字符串中的字节数据,如同在双字节字符集(DBCS)语言中

一样。所以 LenB 返回的是用于代表字符串的字节数,而不是返回字符串中字符

的数量。如为用户自定义类型,LenB 返回在内存中的大小,包括元素之间的衬垫

。对于使用 LenB的示例代码,请参阅示例主题中的第二个示例。
注意 当在用户自定义数据类型中使用变长字符串时,Len 可能不能确定实际存储

所需的字节数目。
----------------------------------------------------------------------

----------
Loc 函数
返回一个 Long,在已打开的文件中指定当前读/写位置。
语法
Loc(filenumber)
必要的 filenumber 参数是任何一个有效的 Integer 文件号。
说明
Loc 函数对各种文件访问方式的返回值如下:
方式 返回值
Random 上一次对文件进行读出或写入的记录号。
Sequential 文件中当前字节位置除以 128 的值。但是,对于顺序文件而言,不

会使用 Loc 的返回值,也不需要使用 Loc 的返回值。
Binary 上一次读出或写入的字节位置。
----------------------------------------------------------------------

----------
LOF 函数
返回一个 Long,表示用 Open 语句打开的文件的大小,该大小以字节为单位。
语法
LOF(filenumber)
必要的 filenumber 参数是一个 Integer,包含一个有效的文件号。
注意 对于尚未打开的文件,使用 FileLen 函数将得到其长度。
----------------------------------------------------------------------

----------
Log 函数
返回一个 Double,指定参数的自然对数值。
语法
Log(number)
必要的 number 参数是 Double 或任何有效的大于 0 的数值表达式。
说明
自然对数是以 e 为底的对数。常数 e 的值大约是 2.718282。
如下所示,将 x 的自然对数值除以 n 的自然对数值,就可以对任意底 n 来计算

数值 x 的对数值:
Logn(x) = Log(x) / Log(n)
下面的示例说明如何编写一个函数来求以 10 为底的对数值:
Static Function Log10(X)
Log10 = Log(X) / Log(10#)
End Function
----------------------------------------------------------------------

----------
LTrim、RTrim与 Trim 函数
返回 Variant (String),其中包含指定字符串的拷贝,没有前导空白 (LTrim)、

尾随空白 (RTrim) 或前导和尾随空白 (Trim)。
语法
LTrim(string)
RTrim(string)
Trim(string)
必要的 string 参数可以是任何有效的字符串表达式。如果 string 包含 Null,

将返回 Null。
----------------------------------------------------------------------

----------
Mid 函数
返回 Variant (String),其中包含字符串中指定数量的字符。
语法
Mid(string, start[, length])
Mid 函数的语法具有下面的命名参数:
部分 说明
string 必要参数。字符串表达式,从中返回字符。如果 string 包含 Null,将

返回 Null。
start 必要参数。为 Long。string 中被取出部分的字符位置。如果 start 超过

string 的字符数,Mid 返回零长度字符串 ("")。
length 可选参数;为 Variant (Long)。要返回的字符数。如果省略或 length

超过文本的字符数(包括 start 处的字符),将返回字符串中从 start 到尾端

的所有字符。
说明
欲知 string 的字符数,可用 Len 函数。
注意 MidB 函数作用于字符串中包含的字节数据,如同在双字节字符集(DBCS)语

言中一样。因此其参数指定的是字节数,而不是字符数。对于使用 MidB的示例代

码,请参阅示例主题中的第二个示例。
----------------------------------------------------------------------

----------
Minute 函数
返回一个 Variant (Integer),其值为 0 到 59 之间的整数,表示一小时中的某

分钟。
语法
Minute(time)
必要的 time 参数,可以是任何能够表示时刻的 Variant、数值表达式、字符串

表达式或它们的组合。如果 time 包含 Null,则返回 Null。
----------------------------------------------------------------------

----------
MIRR 函数
返回一个 Double,指定一系列修改过的周期性现金流(支出或收入)的内部利率


语法
MIRR(values(), finance_rate, reinvest_rate)
MIRR 函数有下列命名参数:
部分 描述
values() 必要。Double 数组,指定现金流值。此数组至少要包含一个负值(支

付)和一个正值(收入)。
finance_rate 必要。Double 指定财务成本上的支付利率。
reinvest_rate 必要。Double 指定由现金再投资所得利率。
说明
修改过的返回内部利率是指在用不同的利率计算支出和收入时的内部利率。MIRR

函数既考虑投资成本 (finance_rate),也考虑现金再投资所得利率

(reinvest_rate)。
finance_rate 和 reinvest_rate 参数是用十进制数值表示的百分比。例如,

0.12 表示百分之十二。
MIRR 函数用数组中的数值顺序来解释支付和收入的顺序。要确保支付和收入的输

入顺序正确。
----------------------------------------------------------------------

----------
Month 函数
返回一个 Variant (Integer),其值为 1 到 12 之间的整数,表示一年中的某月


语法
Month(date)
必要的 date 参数,可以是任何能够表示日期的 Variant、数值表达式、字符串

表达式或它们的组合。如果 date 包含 Null,则返回 Null。
----------------------------------------------------------------------

----------
MonthName函数
描述
返回一个表示指定月份的字符串。
语法
MonthName(month[, abbreviate])
MonthName函数语法有如下几部分:
部分 描述
month 必需的。月份的数值表示。例如一月是1,二月是2,等等。
abbreviate 可选的。Boolean值,表示月份名是否缩写。如果忽略,缺省值为

False,表明月份名不能被缩写。
----------------------------------------------------------------------

----------
MsgBox 函数
在对话框中显示消息,等待用户单击按钮,并返回一个 Integer 告诉用户单击哪

一个按钮。
语法
MsgBox(prompt[, buttons] [, title] [, helpfile, context])
MsgBox 函数的语法具有以下几个命名参数:
部分 描述
Prompt 必需的。字符串表达式,作为显示在对话框中的消息。prompt 的最大长

度大约为 1024 个字符,由所用字符的宽度决定。如果 prompt 的内容超过一行

,则可以在每一行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或是回车与换行

符的组合 (Chr(13) & Chr(10)) 将各行分隔开来。
Buttons 可选的。数值表达式是值的总和,指定显示按钮的数目及形式,使用的

图标样式,缺省按钮是什么以及消息框的强制回应等。如果省略,则 buttons 的

缺省值为 0。
Title 可选的。在对话框标题栏中显示的字符串表达式。如果省略 title,则将

应用程序名放在标题栏中。
Helpfile 可选的。字符串表达式,识别用来向对话框提供上下文相关帮助的帮助

文件。如果提供了 helpfile,则也必须提供 context。
Context 可选的。数值表达式,由帮助文件的作者指定给适当的帮助主题的帮助

上下文编号。如果提供了 context,则也必须提供 helpfile。
设置值
buttons 参数有下列设置值:
常数 值 描述
vbOKOnly 0 只显示 OK 按钮。
VbOKCancel 1 显示 OK 及 Cancel 按钮。
VbAbortRetryIgnore 2 显示 Abort、Retry 及 Ignore 按钮。
VbYesNoCancel 3 显示 Yes、No 及 Cancel 按钮。
VbYesNo 4 显示 Yes 及 No 按钮。
VbRetryCancel 5 显示 Retry 及 Cancel 按钮。
VbCritical 16 显示 Critical Message 图标。
VbQuestion 32 显示 Warning Query 图标。
VbExclamation 48 显示 Warning Message 图标。
VbInformation 64 显示 Information Message 图标。
vbDefaultButton1 0 第一个按钮是缺省值。
vbDefaultButton2 256 第二个按钮是缺省值。
vbDefaultButton3 512 第三个按钮是缺省值。
vbDefaultButton4 768 第四个按钮是缺省值。
vbApplicationModal 0 应用程序强制返回;应用程序一直被挂起,直到用户对消

息框作出响应才继续工作。
vbSystemModal 4096 系统强制返回;全部应用程序都被挂起,直到用户对消息框

作出响应才继续工作。
vbMsgBoxHelpButton 16384 将Help按钮添加到消息框
VbMsgBoxSetForeground 65536 指定消息框窗口作为前景窗口
vbMsgBoxRight 524288 文本为右对齐
vbMsgBoxRtlReading 1048576 指定文本应为在希伯来和阿拉伯语系统中的从右到

左显示
第一组值 (0-5) 描述了对话框中显示的按钮的类型与数目;第二组值 (16, 32,

48, 64) 描述了图标的样式;第三组值 (0, 256, 512) 说明哪一个按钮是缺省值

;而第四组值 (0, 4096) 则决定消息框的强制返回性。将这些数字相加以生成

buttons 参数值的时候,只能由每组值取用一个数字。
注意 这些常数都是 Visual Basic for Applications (VBA) 指定的。结果,可

以在程序代码中到处使用这些常数名称,而不必使用实际数值。
返回值
常数 值 描述
vbOK 1 OK
vbCancel 2 Cancel
vbAbort 3 Abort
vbRetry 4 Retry
vbIgnore 5 Ignore
vbYes 6 Yes
vbNo 7 No
说明
在提供了 helpfile 与 context 的时候,用户可以按 F1 来查看与 context 相

应的帮助主题。像 Microsoft Excel 这样一些主机应用程序也会在对话框中自动

添加一个 Help 按钮。
如果对话框显示 Cancel 按钮,则按下 ESC 键与单击 Cancel 按钮的效果相同。

如果对话框中有 Help 按钮,则对话框中提供有上下文相关的帮助。但是,直到

其它按钮中有一个被单击之前,都不会返回任何值。
注意 如果还要指定第一个命名参数以外的参数,则必须在表达式中使用 MsgBox

。为了省略某些位置参数,必须加入相应的逗号分界符。
----------------------------------------------------------------------

----------
Now 函数
返回一个 Variant (Date),根据计算机系统设置的日期和时间来指定日期和时间


语法
Now
----------------------------------------------------------------------

----------
NPer 函数
返回一个 Double,指定定期定额支付且利率固定的总期数。
语法
NPer(rate, pmt, pv[, fv[, type]])
NPer 函数有下列命名参数:
部分 描述
rate 必要。Double 指定每一期的利率。例如,如果有一笔贷款年百分率 (APR)

为百分之十并按月付款的汽车贷款,则每一期的利率为 0.1/12 或 0.0083。
pmt 必要。Double 指定每一期所付金额。付款金额通常包含本金和利息,且付款

金额在年金的有效期间不变。
pv 必要。Double 指定未来一系列付款或收款的现值。例如,当贷款买一辆汽车

时,向贷方所借贷的金额为将来每月偿付给贷方款项的现值。
fv 可选。Variant 指定在付清贷款后所希望的未来值或现金结存。例如,贷款的

未来值在贷款付清后为 0 美元。但是,如果想要在 18 年间存下 50,000 美元

作为子女教育基金,那么 50,000 美元为未来值。如果省略的话,缺省值为 0。
type 可选。Variant 指定贷款到期时间。如果贷款是在贷款周期结束时到期,请

使用 0,如果贷款是在周期开始时到期,请使用 1。如果省略的话,缺省值为 0


说明
年金是在一段时间内一系列固定现金支付。年金可以是贷款(如房屋抵押贷款)

,也可以是一笔投资(如按月储蓄计划)。
对所有参数,用负数表示现金支出(如储蓄存款),而用正数表示现金收入(如

红利支票)。
----------------------------------------------------------------------

----------
NPV 函数
返回一个 Double,指定根据一系列定期的现金流(支付和收入)和贴现率而定的

投资净现值。
语法
NPV(rate, values())
NPV 函数有下列命名参数:
部分 描述
rate 必要。Double 指定在一期间内的贴现率,用十进制表示。
values() 必要。Double 数组 指定现金流值。此数组至少要包含一个负值(支付

)和一个正值(收入)。
说明
投资的净现值是未来一系列支付或收入的当前价值。
NPV 函数使用数组中数值的顺序来解释支付和收入的顺序。要确保支付和收入值

是用正确的顺序输入的。
NPV 投资在第一笔现金流值之前开始计算周期,而结束于数组中最后的现金流值


净现值是根据未来的现金流进行计算的。如果第一笔现金流在第一期开始时发生

,那么 NPV 返回的值必须加上第一笔值才是净现值。而且 values() 数组不可包

含第一笔值。
NPV 函数与 PV 函数(现值)相似,只是 PV 函数在一个期间的开始或结束时才

允许有现金流。与可变的 NPV 现金流值不同,PV 的现金流在整个投资期间必须

固定。
----------------------------------------------------------------------

----------
Oct 函数
返回 Variant (String),代表一数值的八进制值。
语法
Oct(number)
必要的 number 参数为任何有效的数值表达式或字符串表达式。
说明
如果 number 尚非整数,那么在执行前会先四舍五入成最接近的整数。
如果 number 为 Oct 返回
Null Null
Empty 零 (0)
任何其他的数字 最多可到 11 个八进制字符。
可以将适当范围的数前缀以 &O 来直接表示八进制数字。例如,八进制表示法的

&O10 代表十进制的 8。
----------------------------------------------------------------------

----------
Partition 函数
返回一个 Variant (String),指定一个范围,在一系列计算的范围中指定的数字

出现在这个范围内。
语法
Partition(number, start, stop, interval)
Partition 函数的语法含有下面这些命名参数:
部分 描述
number 必要参数。整数,在所有范围中判断这个整数是否出现。
start 必要参数。整数,数值范围的开始值,这个数值不能小于 0。
stop 必要参数。整数,数值范围的结束值,这个数值不能等于或小于 start。
说明
Partition 函数会标识 number 值出现的特定范围,并返回一个 Variant

(String) 来描述这个范围。Partition 函数在查询中是最有用的。可以创建一个

选择查询显示有多少定单落在几个变化的范围内,例如,定单数从 1 到 1000、

1001 到 2000,以此类推。
下面的表格使用三组 start,stop 以及 interval 部分,来显示怎样决定这个范

围。第一个范围和最后一个范围两列显示 Partition 的返回值,此范围的低端

(lowervalue) 和高端 (uppervalue) 是以冒号分开的。
start stop interval 第一个范围之前 第一个范围 最后一个范围 最后一个范围

之后
0 99 5 " :-1" " 0: 4" " 95: 99" " 100: "
20 199 10 " : 19" " 20: 29" " 190: 199" " 200: "
100 1010 20 " : 99" " 100: 119" " 1000: 1010" " 1011: "
从上面的表格中得知,在第三行中,由 start 和 stop 所定义的数值范围不能以

interval 来均分。所以,即使 interval 是 20,最后一个范围也只能扩展到

stop(11 个数)。
如果需要的话,Partition 会在返回的范围中加上足够的空白,以便让返回值在

冒号的左右两侧有相同的字符数,其值就是 stop 中的字符数再加一。如此可确

保当要使用 Partition 与其它的数值作运算时,所得的字符串,可以在之后的排

序操作中得到正确的结果。
如果 interval 是 1,则范围便是 number:number,而不管 start 和 stop 参数

如何。比如说,如果 interval 是 1,number 是 100,而 stop 是 1000,则

Partition 会返回 " 100: 100"。
如果任何部分是 Null,则 Partition 会返回一个 Null。
----------------------------------------------------------------------

----------
Pmt 函数
返回一个 Double,指定根据定期定额支付且利率固定的年金支付额。
语法
Pmt(rate, nper, pv[, fv[, type]])
Pmt 函数有下列命名参数:
部分 描述
rate 必要。Double 指定每一期的利率。例如,如果有一笔贷款年百分比率

(APR) 为百分之十且按月付款的汽车贷款,则每一期的利率为 0.1/12 或 0.0083


nper 必要。Integer 指定一笔年金的付款总期数。例如,如果对一笔为期四年的

汽车贷款选择按月付款,则贷款共有 4 * 12(或 48)个付款期。
pv 必要。Double 指定未来一系列付款或收款的现值。例如,当贷款买一辆汽车

时,向贷方所借贷的金额为将来每月偿付给贷方款项的现值。
fv 可选。Variant 指定在付清贷款后所希望的未来值或现金结存。例如,贷款的

未来值在贷款付清后为 0 美元。但是,如果想要在 18 年间存下 50,000 美元

作为子女教育基金,那么 50,000 美元为未来值。如果省略的话,缺省值为 0。
type 可选。Variant,指定贷款到期时间。如果贷款是在贷款周期结束时到期,

请使用 0。如果贷款是在周期开始时到期,则请使用 1。如果省略的话,缺省值

为 0。
说明
年金是在一段时间内一系列固定现金支付,年金可以是贷款(如房屋抵押贷款)

,也可以是一笔投资(如按月储蓄计划)。
在支付期间必须用相同的单位计算 rate 和 nper 参数。例如,如果 rate 用月

份计算,则 nper 也必须用月份计算。
对所有参数,用负数表示现金支出(如储蓄存款),而用正数表示现金收入(如

红利支票)。
----------------------------------------------------------------------

----------
PPmt 函数
返回一个 Double,指定在定期定额支付且利率固定的年金的指定期间内的本金偿

付额。
语法
PPmt(rate, per, nper, pv[, fv[, type]])
PPmt 函数有下列命名参数:
部分 描述
rate 必要。Double 指定每一期的利率。例如,如果有一笔贷款年百分比率

(APR) 为百分之十且按月付款的汽车贷款,则每一期的利率为 0.1/12 或 0.0083


per 必要。Integer 指定在 nper 间范围 1 中的付款周期。
nper 必要。Integer 指定一笔年金的付款总期数。例如,如果对一笔为期四年的

汽车贷款选择按月付款,则贷款共有 4 * 12(或 48)个付款期。
pv 必要。Double 指定未来一系列付款或收款的现值。例如,当贷款买一辆汽车

时,向贷方所借贷的金额为将来每月偿付给贷方款项的现值。
fv 可选。Variant 指定在付清贷款后所希望的未来值或现金结存值。例如,贷款

的未来值在贷款付清后为 0 美元。但是,如果想要在 18 年间存下 50,000 美

元作为子女教育基金,那么 50,000 美元为未来值。如果省略的话,缺省值为 0


type 可选。Variant 指定贷款到期时间。如果贷款是在贷款周期结束时到期,则

请使用 0。如果贷款是在周期开始时到期,则请使用 1。如果省略的话,缺省值

为 0。
说明
年金是在一段时间内一系列固定现金支付。年金可以是贷款(如房屋抵押贷款)

,也可以是一笔投资(如按月储蓄计划)。
在支付期间必须用相同的单位计算 rate 和 nper 参数。例如,如果 rate 用月

份计算,则 nper 也必须用月份计算。
对所有参数,用负数表示现金支出(如储蓄存款),而用正数表示现金收入(如

红利支票)。
----------------------------------------------------------------------

----------
PV 函数
返回一个 Double 指定在未来定期、定额支付且利率固定的年金现值。
语法
PV(rate, nper, pmt[, fv[, type]])
PV 函数有下列命名参数:
部分 描述
rate 必要。Double 指定每一期的利率。例如,如果有一笔贷款年百分比率

(APR) 为百分之十且按月付款的汽车贷款,则每一期的利率为 0.1/12 或 0.0083


nper 必要。Integer 指定一笔年金的付款总期数。例如,如果对一笔为期四年的

汽车贷款选择按月付款,则贷款共有 4 * 12(或 48)个付款期。
pmt 必要。Double 指定每一期的付款金额。付款金额通常包含本金和利息,且此

付款金额在年金的有效期间不变。
fv 可选。Variant,指定在付清贷款后所希望的未来值或现金结存。例如,贷款

的未来值在贷款付清后为 0 美元。但是,如果想要在 18 年间存下 50,000 美

元作为子女教育基金,那么 50,000 美元为未来值。如果省略的话,缺省值为 0


type 可选。Variant 指定贷款到期时间。如果贷款是在贷款周期结束时到期,则

请使用 0。如果贷款是在周期开始时到期,则请使用 1。如果省略的话,缺省值

为 0。
说明
年金是在一段时间内一系列固定现金支付。年金可以是贷款(如房屋抵押贷款)

,也可以是一笔投资(如按月储蓄计划)。
在支付期间必须用相同的单位计算 rate 和 nper 参数。例如,如果 rate 用月

份计算,则 nper 也必须用月份计算。
对所有参数,现金支出(如储蓄存款)用负数表示,而现金收入(如红利支票)

用正数表示。
----------------------------------------------------------------------

----------
QBColor 函数
返回一个 Long,用来表示所对应颜色值的 RGB 颜色码。
语法
QBColor(color)
必要的 color 参数是一个界于 0 到 15 的整型。
设置值
color 参数有以下这些设置:
值 颜色 值 颜色
0 黑色 8 灰色
1 兰色 9 亮兰色
2 绿色 10 亮绿色
3 青色 11 亮青色
4 红色 12 亮红色
5 洋红色 13 亮洋红色
6 黄色 14 亮黄色
7 白色 15 亮白色
说明
color 参数代表使用于早期版本的 Basic(诸如 Microsoft Visual Basic for

MS-DOS 以及 Basic Compiler)的颜色值。始于最低有效字节,返回值指定了红

、绿、蓝三原色的值,用于设置成 VBA中RGB 系统的对应颜色。
----------------------------------------------------------------------

----------
Rate 函数
返回一个 Double,指定每一期的年金利率。
语法
Rate(nper, pmt, pv[, fv[, type[, guess]]])
Rate 函数有下列命名参数:
部分 描述
nper 必要。Double 指定一笔年金的付款总期数。例如,如果对一笔为期四年的

汽车贷款选择按月付款,则贷款共有 4 * 12(或 48)个付款期。
pmt 必要。Double,指定每一期的付款金额。付款金额通常包含本金和利息,且

此付款金额在年金的有效期间不变。
pv 必要。Double 指定未来一系列付款或收款的现值。例如,当贷款买一辆汽车

时,向贷方所借贷的金额为将来每月偿付给贷方款项的现值。
fv 可选。Variant 指定在付清贷款后所希望的未来值或现金结存。例如,贷款的

未来值在贷款付清后为 0 美元。但是,如果想要在 18 年间存下 50,000 美元

作为子女教育基金,那么 50,000 美元为未来值。如果省略的话,缺省值为 0。
type 可选。Variant,指定贷款到期时间,如果贷款是在贷款周期结束时到期,

则请使用 0。如果贷款是在周期开始时到期,则请使用 1。如果省略的话,缺省

值为 0。
guess 可选。Variant 指定 Rate 返回的估算值。如果省略,则 guess 为 0.1

(10%)。
说明
年金是在一段时间内的一系列固定现金支付,年金可以是贷款(如房屋抵押贷款)

或是一笔投资(如按月储蓄计划)。
对所有参数,现金支出(如储蓄存款)用负数表示,而现金收入(如红利支票)

用正数表示。
Rate 是叠代计算的。先从 guess 的值开始,Rate 反复循环计算,直到精确度达

到 0.00001%。如果经过 20 次叠代测试还不能得到结果,则 Rate 计算失败。如

果猜测是 10% 而 Rate 计算失败,则请试用不同的 guess.值。
----------------------------------------------------------------------

----------
Replace函数
描述
返回一个字符串,该字符串中指定的子字符串已被替换成另一子字符串,并且替

换发生的次数也是指定的。
语法
Replace(exdivssion, find, replacewith[, start[, count[, compare]]])
Replace函数语法有如下几部分:
部分 描述
exdivssion 必需的。字符串表达式,包含要替换的子字符串。
find 必需的。要搜索到的子字符串。
replacewith 必需的。用来替换的子字符串。
start 可选的。在表达式中子字符串搜索的开始位置。如果忽略,假定从1开始。
count 可选的。子字符串进行替换的次数。如果忽略,缺省值是 -1,它表明进行

所有可能的替换。
compare 可选的。数字值,表示判别子字符串时所用的比较方式。关于其值,请

参阅“设置值”部分。
设置值
compare参数的设置值如下:
常数 值 描述
vbUseCompareOption -1 使用Option Compare语句的设置值来执行比较。
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文字比较。
vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比

较。
返回值
Replace的返回值如下:
如果 Replace返回值
exdivssion长度为零 零长度字符串("")。
exdivssion为Null 一个错误。
find长度为零 exdivssion的复本。
replacewith长度为零 exdivssion的复本,其中删除了所有出现的find 的字符串


start > Len(exdivssion) 长度为零的字符串。
count is 0 exdivssion.的复本。
说明
Replace函数的返回值是一个字符串,但是,其中从start所指定的位置开始,到

exdivssion字符串的结尾处的一段子字符串已经发生过替换动作。并不是原字符

串从头到尾的一个复制。
----------------------------------------------------------------------

----------
RGB 函数
返回一个 Long整数,用来表示一个 RGB 颜色值。
语法
RGB(red, green, blue)
RGB 函数的语法含有以下这些命名参数:
部分 描述
red 必要参数;Variant (Integer)。数值范围从 0 到 255,表示颜色的红色成

份。
green 必要参数;Variant (Integer)。数值范围从 0 到 255,表示颜色的绿色

成份。
blue 必要参数;Variant (Integer)。数值范围从 0 到 255,表示颜色的兰色成

份。
说明
可以接受颜色说明的应用程序的方法和属性期望这个说明是一个代表 RGB 颜色值

的数值。一个 RGB 颜色值指定红、绿、蓝三原色的相对亮度,生成一个用于显示

的特定颜色。
传给 RGB 的任何参数的值,如果超过 255,会被当作 255。
下面的表格显示一些常见的标准颜色,以及这些颜色的红、绿、蓝三原色的成份


颜色 红色值 绿色值 兰色值
黑色 0 0 0
兰色 0 0 255
绿色 0 255 0
青色 0 255 255
红色 255 0 0
洋红色 255 0 255
黄色 255 255 0
白色 255 255 255
----------------------------------------------------------------------

----------
Right 函数
返回 Variant (String),其中包含从字符串右边取出的指定数量的字符。
语法
Right(string, length)
Right 函数的语法具有下面的命名参数:
部分 说明
string 必要参数。字符串表达式,从中最右边的字符将被返回。如果 string 包

含 Null,将返回 Null。
length 必要参数;为 Variant (Long)。为数值表达式,指出想返回多少字符。

如果为 0,返回零长度字符串 ("")。如果大于或等于 string 的字符数,则返回

整个字符串。
说明
欲知 string 的字符数,用 Len 函数。
注意 RightB 函数作用于包含在字符串中的字节数据。所以 length 指定的是字

节数,而不是指定返回的字符数。
----------------------------------------------------------------------

----------
Rnd 函数
返回一个包含随机数值的 Single。
语法
Rnd[(number)]
可选的 number 参数是 Single 或任何有效的数值表达式。
返回值
如果 number 的值是 Rnd 生成
小于 0 每次都使用 number 作为随机数种子得到的相同结果。
大于 0 序列中的下一个随机数。
等于 0 最近生成的数。
省略 序列中的下一个随机数。
说明
Rnd 函数返回小于 1 但大于或等于 0 的值。
number 的值决定了 Rnd 生成随机数的方式。
对最初给定的种子都会生成相同的数列,因为每一次调用 Rnd 函数都用数列中的

前一个数作为下一个数的种子。
在调用 Rnd 之前,先使用无参数的 Randomize 语句初始化随机数生成器,该生

成器具有根据系统计时器得到的种子。
为了生成某个范围内的随机整数,可使用以下公式:
Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
这里,upperbound 是随机数范围的上限,而 lowerbound 则是随机数范围的下限


注意 若想得到重复的随机数序列,在使用具有数值参数的 Randomize 之前直接

调用具有负参数值的 Rnd。使用具有同样 number 值的 Randomize 是不会得到重

复的随机数序列的。
----------------------------------------------------------------------

----------
Round函数
描述
返回一个数值,该数值是按照指定的小数位数进行四舍五入运算的结果。
语法
Round(exdivssion [,numdecimalplaces])
Round函数语法有如下几部分:
部分 描述
exdivssion 必需的。要进行四舍五入运算的数值表达式。
numdecimalplaces 可选的。数字值,表示进行四舍五入运算时,小数点右边应保

留的位数。如果忽略,则Round函数返回整数。
----------------------------------------------------------------------

----------
Second 函数
返回一个 Variant (Integer),其值为 0 到 59 之间的整数,表示一分钟之中的

某个秒。
语法
Second(time)
必要的 time 参数,可以是任何能够表示时刻的 Variant、数值表达式、字符串

表达式或它们的组合。如果 time 包含 Null,则返回 Null。
----------------------------------------------------------------------

----------
Seek 函数
返回一个 Long,在 Open 语句打开的文件中指定当前的读/写位置。
语法
Seek(filenumber)
必要的 filenumber 参数是一个包含有效文件号的 Integer。
说明
Seek 函数返回介于 1 和 2,147,483,647(相当于 2^31 - 1)之间的值。
对各种文件访问方式的返回值如下:
方式 返回值
Random 下一个读出或写入的记录号。
Binary,
Output,
Append,
Input 下一个操作将要发生时所在的字节位置。文件中的第一个字节位于位置 1

,第二个字节位于位置 2,依此类推。
----------------------------------------------------------------------

----------
Sgn 函数
返回一个 Variant (Integer),指出参数的正负号。
语法
Sgn(number)
必要的 number 参数是任何有效的数值表达式。
返回值
如果 number 为 Sgn 返回
大于 0 1
等于 0 0
小于 0 -1
说明
number 参数的符号决定了 Sgn 函数的返回值。
----------------------------------------------------------------------

----------
Shell 函数
执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程

序的任务 ID,若不成功,则会返回 0。
语法
Shell(pathname[,windowstyle])
Shell 函数的语法含有下面这些命名参数:
部分 描述
pathname 必要参数。Variant (String),要执行的程序名,以及任何必需的参数

或命令行变量,可能还包括目录或文件夹,以及驱动器。
Windowstyle 可选参数。Variant (Integer),表示在程序运行时窗口的样式。如

果 windowstyle 省略,则程序是以具有焦点的最小化窗口来执行的。
windowstyle 命名参数有以下这些值:
常量 值 描述
vbHide 0 窗口被隐藏,且焦点会移到隐式窗口。
VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置。
VbMinimizedFocus 2 窗口会以一个具有焦点的图标来显示。
VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口。
VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口

仍然保持活动。
VbMinimizedNoFocus 6 窗口会以一个图标来显示。而当前活动的的窗口仍然保持

活动。
说明
如果 Shell 函数成功地执行了所要执行的文件,则它会返回程序的任务 ID。任

务 ID 是一个唯一的数值,用来指明正在运行的程序。如果 Shell 函数不能打开

命名的程序,则会产生错误。
注意 缺省情况下,Shell 函数是以异步方式来执行其它程序的。也就是说,用

Shell 启动的程序可能还没有完成执行过程,就已经执行到 Shell 函数之后的语

句。
----------------------------------------------------------------------

----------
Sin 函数
返回一 Double,指定参数的 sine(正弦)值。
语法
Sin(number)
必要的 number 参数是 Double 或任何有效的数值表达式,表示一个以弧度为单

位的角。
说明
Sin 函数取一角度为参数值,并返回角的对边长度除以斜边长度的比值。
结果的取值范围在 -1 到 1 之间。
为了将角度转换为弧度,请将角度乘以 pi /180。为了将弧度转换为角度,请将

弧度乘以 180/pi。
----------------------------------------------------------------------

----------
SLN 函数
返回一个 Double,在一期里指定一项资产的直线折旧。
语法
SLN(cost, salvage, life)
SLN 函数有下列命名参数:
部分 描述
cost 必要。Double 指定资产的初始成本。
salvage 必要。Double 指定资产在可用年限结束后的价值。
life 必要。Double 指定资产的可用年限。
说明
折旧期间必须用与 life 参数相同的单位表示。所有参数都必须是正数。
----------------------------------------------------------------------

----------
Space 函数
返回特定数目空格的 Variant (String)。
语法
Space(number)
必要的 number 参数为字符串中想要的空格数。
说明
Space 函数在格式输出或清除固定长度字符串数据时很有用。
----------------------------------------------------------------------

----------
Spc 函数
与 Print # 语句或 Print 方法一起使用,对输出进行定位。
语法
Spc(n)
必要的 n 参数是在显示或打印列表中的下一个表达式之前插入的空白数。
说明
如果 n 小于输出行的宽度,则下一个打印位置将紧接在数个已打印的空白之后。

如果 n 大于输出行的宽度,则 Spc 利用下列公式计算下一个打印位置:
currentprintposition + (n Mod width)
例如,如果当前输出位置为 24,而输出行的宽度为 80,并指定了 Spc(90),则

下一个打印将从位置 34 开始(当前打印位置 + 90/80 的余数)。如果当前打印

位置和输出行宽度之间的差小于 n(或 n Mod width),则 Spc 函数会跳到下一

行的开头,并产生数量为 n - (width - urrentprintposition) 的空白。
注意 要确保表格栏宽度足以容纳较宽的字符串。
当 Print 方法与间距字体一起使用时,使用 Spc 函数打印的空格字符的宽度总

是等于选用字体内以磅数为单位的所有字符的平均宽度。但是,在已打印字符的

个数与那些字符所占据的定宽列的数目之间不存在任何关系。例如,大写英文字

母 W 占据超过一个定宽的列,而小写字母 i 则占据少于一个定宽的列。
----------------------------------------------------------------------

----------
Split函数
描述
返回一个下标从零开始的一维数组,它包含指定数目的子字符串。
语法
Split(exdivssion[, delimiter[, count[, compare]]])
Split函数语法有如下几部分:
部分 描述
exdivssion 必需的。包含子字符串和分隔符的字符串表达式 。如果exdivssion

是一个长度为零的字符串(""),Split则返回一个空数组,即没有元素和数据的数

组。
delimiter 可选的。用于标识子字符串边界的字符串字符。如果忽略,则使用空

格字符(" ")作为分隔符。如果delimiter是一个长度为零的字符串,则返回的数

组仅包含一个元素,即完整的 exdivssion字符串。
count 可选的。要返回的子字符串数,-1表示返回所有的子字符串。
compare 可选的。数字值,表示判别子字符串时使用的比较方式。关于其值,请

参阅“设置值”部分。
设置值
compare参数的设置值如下:
常数 值 描述
vbUseCompareOption -1 用Option Compare语句中的设置值执行比较。
vbBinaryCompare 0 执行二进制比较。
vbTextCompare 1 执行文字比较。
vbDatabaseCompare 2 仅用于Microsoft Access。基于您的数据库的信息执行比

较。
----------------------------------------------------------------------

----------
Sqr 函数
返回一个 Double,指定参数的平方根。
语法
Sqr(number)
必要的 number 参数 number 是 Double 或任何有效的大于或等于 0 的数值表达

式。
----------------------------------------------------------------------

----------
Str 函数
返回代表一数值的 Variant (String)。
语法
Str(number)
必要的 number 参数为一 Long,其中可包含任何有效的数值表达式。
说明
当一数字转成字符串时,总会在前头保留一空位来表示正负。如果 number 为正

,返回的字符串包含一前导空格暗示有一正号。
使用 Format 函数可将数值转成必要的格式,如日期、时间、货币或其他用户自

定义格式。与 Str 不同的是,Format 函数不包含前导空格来放置 number 的正

负号。
注意 Str 函数只视句点 (.) 为有效的小数点。如果使用不同的小数点(例如,

国际性的应用程序),可使用 CStr 将数字转成字符串。
----------------------------------------------------------------------

----------
StrComp 函数
返回 Variant (Integer),为字符串比较的结果。
语法
StrComp(string1, string2[, compare])
StrComp 函数的语法有下面的命名参数:
部分 说明
string1 必要参数。任何有效的字符串表达式。
string2 必要参数。任何有效的字符串表达式。
Compare 可选参数。指定字符串比较的类型。如果 compare 参数是 Null,将发

生错误。如果省略 compare,Option Compare 的设置将决定比较的类型。
设置
compare 参数设置为:
常数 值 描述
vbUseCompareOption -1 使用Option Compare语句设置执行一个比较。
vbBinaryCompare 0 执行一个二进制比较。
vbTextCompare 1 执行一个按照原文的比较。
vbDatabaseCompare 2 仅适用于Microsoft Access,执行一个基于数据库信息的

比较。
返回值
StrComp 函数有下列返回值:
如果 StrComp 返回
string1 小于 string2 -1
string1 等于 string2 0
string1 大于 string2 1
string1 或 string 2为 Null Null
----------------------------------------------------------------------

----------
StrConv 函数
返回按指定类型转换的 Variant (String)。
语法
StrConv(string, conversion, LCID)
StrConv 函数的语法有下面的命名参数:
部分 说明
string 必要参数。要转换的字符串表达式。
conversion 必要参数。Integer。其值的和决定转换的类型。
LCID 可选的。如果与系统LocaleID不同,则为LocaleID(系统LocaleID为缺省值

。)
设置值
conversion 参数的设置值为:
常数 值 说明
vbUpperCase 1 将字符串文字转成大写。
vbLowerCase 2 将字符串文字转成小写。
vbProperCase 3 将字符串中每个字的开头字母转成大写。
vbWide* 4* 将字符串中单字节字符转成双字节字符。
vbNarrow* 8* 将字符串中双字节字符转成单字节字符。
vbKatakana** 16** 将字符串中平假名字符转成片假名字符。
vbHiragana** 32** 将字符串中片假名字符转成平假名字符。
vbUnicode 64 根据系统的缺省码页将字符串转成 Unicode。
vbFromUnicode 128 将字符串由 Unicode 转成系统的缺省码页。
*应用到远东国别。
**仅应用到日本。
注意 这些常数是由 VBA 指定的。可以在程序中使用它们来替换真正的值。其中

大部分是可以组合的,例如 vbUpperCase + vbWide,互斥的常数不能组合,例如

vbUnicode + vbFromUnicode。当在不适用的国别使用常数 vbWide、vbNarrow、

vbKatakana,和 vbHiragana 时,就会导致运行时错误。
下面是一些一般情况下的有效分界符:Null (Chr$(0)),水平制表符 (Chr$(9))

,换行 (Chr$(10)),垂直制表符 (Chr$(11)),换页 (Chr$(12)) ,回车

(Chr$(13)),空白 (SBCS) (Chr$(32))。在 DBCS中,空白的实际值会随国家/地

区而不同。
说明
在把 ANSI 格式的 Byte 数组转换为字符串时,您应该使用 StrConv 函数。当您

转换 Unicode 格式的这种数组时,使用赋值语句。
----------------------------------------------------------------------

----------
StrReverse函数
描述
返回一个字符串,其中一个指定子字符串的字符顺序是反向的。
语法
StrReverse(string1)
参数string1是一个字符串,它的字符顺序要被反向。如果string1是一个长度为

零的字符串(""),则返回一个长度为零的字符串。如果string1为Null,则产生一

个错误。
----------------------------------------------------------------------

----------
String 函数
返回 Variant (String),其中包含指定长度重复字符的字符串。
语法
String(number, character)
String 函数的语法有下面的命名参数:
部分 说明
number 必要参数;Long。返回的字符串长度。如果 number 包含 Null,将返回

Null。
character 必要参数;Variant。为指定字符的字符码或字符串表达式,其第一个

字符将用于建立返回的字符串。如果 character 包含 Null,就会返回 Null。
说明
如果指定 character 的数值大于 255,String 会按下面的公式将其转为有效的

字符码:
character Mod 256
----------------------------------------------------------------------

----------
Switch 函数
计算一组表达式列表的值,然后返回与表达式列表中最先为 True 的表达式所相

关的 Variant 数值或表达式。
语法
Switch(expr-1, value-1[, expr-2, value-2 _ [, expr-n,value-n]])
Switch 函数的语法具有以下几个部分:
部分 描述
expr 必要参数。要加以计算的 Variant 表达式。
value 必要参数。如果相关的表达式为 True,则返回此部分的数值或表达式。
说明
Switch 函数的参数列表由多对表达式和数值组成。表达式是由左至右加以计算的

,而数值则会在第一个相关的表达式为 True 时返回。如果其中有部分不成对,

则会产生一个运行时错误。如果 expr-1 为 True 则 Switch 返回 value-1,如

果 expr-1 为 False,但 expr-2 为 True,则 Switch 返回 value-2,以此类推


Switch 会返回一个 Null值,如果:
没有一个表达式为 True。
第一个为 True 的表达式,其相对应的值为 Null。
虽然它只返回其中的一个值,但是 Switch 会计算所有的表达式。因此应该注意

到所产生的副作用。例如,只要其中一个表达式导致被零除错误,就会发生错误


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

----------
SYD 函数
返回一个 Double,指定某项资产在一指定期间用年数总计法计算的折旧。
语法
SYD(cost, salvage, life, period)
SYD 函数有下列命名参数:
部分 描述
cost 必要。Double 指定资产的初始成本。
salvage 必要。Double 指定资产在可用年限结束后的价值。
life 必要。Double 指定资产的可用年限。
period 必要。Double 指定计算资产折旧所用的那一期间。
说明
必须用相同的单位表示 life 和 period 参数。例如,如果 life 用月份表示,

则 period 也必须用月份表示。所有参数都必须是正数。
----------------------------------------------------------------------

----------
Tab 函数
与 Print # 语句或 Print 方法一起使用,对输出进行定位。
语法
Tab[(n)]
可选的 n 参数是在显示或打印列表中的下一个表达式之前移动的列数。若省略此

参数,则 Tab 将插入点移动到下一个打印区的起点。这就使 Tab 可用来替换国

别中的逗号,此处,逗号是作为十进制分隔符使用的。
说明
如果当前行上的打印位置大于 n,则 Tab 将打印位置移动到下一个输出行的第 n

列上。如果 n 小于 1,则 Tab 将打印位置移动到列 1。如果 n 大于输出行的宽

度,则 Tab 函数使用以下公式计算下一个打印位置:
n Mod width
例如,如果 width 是 80,并指定 Tab(90),则下一个打印将从列 10 开始

(90/80 的余数)。如果 n 小于当前打印位置,则从下一行中计算出来的打印位

置开始打印。如果计算后的打印位置大于当前打印位置,则从同一行中计算出来

的打印位置开始打印。
输出行最左端的打印位置总是 1。在使用 Print # 语句将数据写入文件时,最右

端的打印位置是输出文件的当前宽度,这一宽度可用 Width # 语句设置。
注意 要确保表格列的宽度足以容纳较宽的字符串。
当 Print 方法与 Tab 函数一起使用时,打印的外观将会被分割为均匀、定宽的

列。各列的宽度等于选用字体内以磅数为单位的所有字符的平均宽度。但是,在

已打印字符的个数与那些字符所占据的定宽列的数目之间不存在任何关系。例如

,大写字母 W 占据超过一个定宽的列,而小写字母 i 则占据少于一个定宽的列


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

----------
Tan 函数
返回一个 Double 的值,指定一个角的正切值。
语法
Tan(number)
必要的 number 参数是 Double 或任何有效的数值表达式,表示一个以弧度为单

位的角度。
说明
Tan 取一角度为参数值,并返回直角的两条邻边的比值。该比值是角的对边长度

除以角的邻边长度的商。
为了将角度转换为弧度,请将角度乘以 pi/180/180。为了将弧度转换为角度,请

将弧度乘以 180/pi。
----------------------------------------------------------------------

----------
Time 函数
返回一个指明当前系统时间的 Variant (Date)。
语法
Time
说明
为了设置系统时间,请使用 Time 语句。
----------------------------------------------------------------------

----------
Timer 函数
返回一个 Single,代表从午夜开始到现在经过的秒数。
语法
Timer
说明
Microsoft Windows中,Timer函数返回一秒的小数部分。
----------------------------------------------------------------------

----------
TimeSerial 函数
返回一个 Variant (Date),包含具有具体时、分、秒的时间。
语法
TimeSerial(hour, minute, second)
TimeSerial 函数语法有下列的命名参数:
部分 描述
hour 必要;Variant (Integer)。其值从 0 (12:00 A.M.) 到 23 (11:00 P.M.)

,或一数值表达式。
minute 必要;Variant (Integer)。任何数值表达式。
second 必要;Variant (Integer)。任何数值表达式。
说明
为了指定一个时刻,如 11:59:59,TimeSerial 的参数取值应在正常范围内;也

就是说,钟点应介于 0-23 之间,而分钟与秒应介于 0-59 之间。但是,当一个

数值表达式表示某时刻之前或其后的时、分钟或秒数时,也可以为每个使用这个

数值表达式的参数指定相对时间。以下示例中使用了表达式代替绝对时间数。

TimeSerial 函数返回中午之前六小时 (12 - 6) 又十五分钟 (-15) 的时间,即

5:45:00 A.M.
TimeSerial(12 - 6, -15, 0)
当任何一个参数的取值超出正常范围时,它会适时进位到下一个较大的时间单位

。例如,如果指定了 75(75 分钟),则这个时间被解释成一小时又十五分。如

果一个参数值超出 -32,768 到 32,767 的范围,就会导致错误发生。如果三个

参数指定的时间会使日期超出可接受的日期范围,则亦会导致错误发生。
----------------------------------------------------------------------

----------
TimeValue 函数
返回一个包含时间的 Variant (Date)。
语法
TimeValue(time)
必要的 time 参数,通常是一个字符串表达式,表示 0:00:00 (12:00:00 A.M.)

到 23:59:59 (11:59:59 P.M.) 之间的时刻。但是,time 也可以是表示在同一时

间范围取值的任何其它表达式。如果 time 包含 Null,则返回 Null。
说明
可以使用 12 小时制或 24 小时制的时间格式。例如,”2:24PM” 和 "14:24"

均是有效的 time 表达式。
如果 time 参数包含日期信息,TimeValue 将不会返回它。但是,若 time 包含

无效的日期信息,则会导致错误发生。
----------------------------------------------------------------------

----------
类型转换函数
每个函数都可以强制将一个表达式转换成某种特定数据类型。
语法
CBool(exdivssion)
CByte(exdivssion)
CCur(exdivssion)
CDate(exdivssion)
CDbl(exdivssion)
CDec(exdivssion)
CInt(exdivssion)
CLng(exdivssion)
CSng(exdivssion)
CStr(exdivssion)
CVar(exdivssion)
CStr(exdivssion)
必要的 exdivssion 参数可以是任何字符串表达式或数值表达式。
返回类型
函数名称决定返回类型,如下所示:
函数 返回类型 exdivssion 参数范围
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 依据 exdivssion 参数返回 Cstr。
CVar Variant 若为数值,则范围与 Double 相同;若不为数值,则范围与

String 相同。
说明
如果传递给函数的 exdivssion 超过转换目标数据类型的范围,将发生错误。
通常,在编码时可以使用数据类型转换函数,来体现某些操作的结果应该表示为

特定的数据类型,而不是缺省的数据类型。例如,当单精度、双精度或整数运算

发生的情况下,使用 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 子类型。
----------------------------------------------------------------------

----------
TypeName 函数
返回一个 String,提供有关变量的信息。
语法
TypeName(varname)
必要的 varname 参数是一个 Variant,它包含用户定义类型变量之外的任何变量


说明
TypeName 所返回的字符串可以是下面列举的任何一个字符串:
返回字符串 变量
对象类型 类型为 objecttype 的对象
Byte 位值
Integer 整数
Long 长整数
Single 单精度浮点数
Double 双精度浮点数
Currency 货币
Decimal 十进制值
Date 日期
String 字符串
布尔 布尔值
Error 错误值
Empty 未初始化
Null 无效数据
Object 对象
Unknown 类型未知的对象
Nothing 不再引用对象的对象变量
如果 varname 是一个数组,则返回的字符串可以是任何一个后面添加了空括号的

可能的返回字符串(或 Variant)。例如,如果 varname 是一个整数数组,则

TypeName 返回 "Integer()"。
----------------------------------------------------------------------

----------
UBound 函数
返回一个 Long 型数据,其值为指定的数组维可用的最大下标。
语法
UBound(arrayname[, dimension])
UBound 函数的语法包含下面部分:
部分 描述
arrayname 必需的。数组变量的名称,遵循标准变量命名约定。
dimension 可选的;Variant (Long)。指定返回哪一维的上界。1 表示第一维,2

表示第二维,以此类推。如果省略 dimension,就认为是 1。
说明
UBound 函数与 LBound 函数一起使用,用来确定一个数组的大小。LBound 用来

确定数组某一维的上界。
对具有下述维数的数组而言,UBound 的返回值见下表:
Dim A(1 To 100, 0 To 3, -3 To 4)
语句 返回值
UBound(A, 1) 100
UBound(A, 2) 3
UBound(A, 3) 4
----------------------------------------------------------------------

----------
UCase 函数
返回 Variant (String),其中包含转成大写的字符串。
语法
UCase(string)
必要的 string 参数为任何有效的字符串表达式。如果 string 包含 Null,将返

回 Null。
说明
只有小写的字母会转成大写;原本大写或非字母的字符保持不变。
----------------------------------------------------------------------

----------
Val 函数
返回包含于字符串内的数字,字符串中是一个适当类型的数值。
语法
Val(string)
必要的 string 参数可以是任何有效的字符串表达式.
说明
Val 函数,在它不能识别为数字的第一个字符上,停止读入字符串。那些被认为

是数值的一部分的符号和字符,例如美圆号与逗号,都不能被识别。但是函数可

以识别进位制符号 &O(八进制)和 &H(十六进制)。空白、制表符和换行符都

从参数中被去掉。
下面的返回值为 1615198:
Val(" 1615 198th Street N.E.")
在下面的代码中,Val 为所示的十六进制数值返回十进制数值 -1。
Val("&HFFFF")
注意 Val 函数只会将句点(.)当成一个可用的小数点分隔符。当使用不同的小

数点分隔符时,如在国际版应用程序中,代之以 CDbl 来把字符串转换为数字。
----------------------------------------------------------------------

----------
VarType 函数
返回一个 Integer,指出变量的子类型。
语法
VarType(varname)
必要的 varname 参数是一个 Variant,包含用户定义类型变量之外的任何变量。
返回值
常数 值 描述
vbEmpty 0 Empty(未初始化)
vbNull 1 Null(无有效数据)
vbInteger 2 整数
vbLong 3 长整数
vbSingle 4 单精度浮点数
vbDouble 5 双精度浮点数
vbCurrency 6 货币值
vbDate 7 日期
vbString 8 字符串
vbObject 9 对象
vbError 10 错误值
vbBoolean 11 布尔值
vbVariant 12 Variant(只与变体中的数组一起使用)
vbDataObject 13 数据访问对象
vbDecimal 14 十进制值
vbByte 17 位值
vbUserDefinedType 36 包含用户定义类型的变量
vbArray 8192 数组
注意 这些常数是由 Visual Basic 为应用程序指定的。这些名称可以在程序代码

中到处使用,以代替实际值。
说明
VarType 函数自身从不对 vbArray 返回值。VarType 总是要加上一些其他值来指

出一个具体类型的数组。常数 vbVariant 只与 vbArray 一起返回,以表明

VarType 函数的参数是一个 Variant 类型的数组。例如,对一个整数数组的返回

值是 vbInteger + vbArray,或 8194。如果一个对象有缺省属性,则 VarType

(object) 返回对象缺省属性的类型。
----------------------------------------------------------------------

----------
Weekday 函数
返回一个 Variant (Integer),包含一个整数,代表某个日期是星期几。
语法
Weekday(date, [firstdayofweek])
Weekday 函数语法有下列的命名参数:
部分 描述
date 必要。能够表示日期的 Variant、数值表达式、字符串表达式或它们的组合

。如果 date 包含 Null,则返回 Null。
Firstdayofweek 可选。指定一星期第一天的常数。如果未予指定,则以

vbSunday 为缺省值。
设置
firstdayofweek 参数有以下设定值:
常数 值 描述
vbUseSystem 0 使用 NLS API 设置。
VbSunday 1 星期日(缺省值)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
返回值
Weekday 函数可以返回以下诸值:
常数 值 描述
vbSunday 1 星期日
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
----------------------------------------------------------------------

----------
WeekdayName函数
描述
返回一个字符串,表示一星期中的某天。
语法
WeekdayName(weekday, abbreviate, firstdayofweek)
WeekdayName函数语法有如下几部分:
部分 描述
weekday 必需的。数字值,表示一星期中的某天。该数字值要依赖于

firstdayofweek设置中的设置值来决定。
abbreviate 可选的。Boolean值,表示星期的名称是否被缩写。如果忽略该值,

缺省值为False,表明星期的名称不能被缩写。
firstdayofweek 可选的。数字值,表示一星期中第一天。关于其值,请参阅“设

置值”部分。
设置值
firstdayofweek参数值如下:
常数 值 描述
vbUseSystem 0 使用本国语言支持 (NLS) API设置值。
vbSunday 1 星期日(缺省)。
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
----------------------------------------------------------------------

----------
Year 函数
返回 Variant (Integer),包含表示年份的整数。
语法
Year(date)
必要的 date 参数,可以是任何能够表示日期的 Variant、数值表达式、字符串

表达式或它们的组合。如果 date 包含 Null,则返回 Null。
----------------------------------------------------------------------

----------

  评论这张
 
阅读(2093)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017