1、EXCELVBA函数参考手册Excel VBA 学习资料函数参考手册摘自Excel2003VBA帮助2006年12月29日Abs 函数返回参数的绝对值,其类型和参数相同。语法Abs(number) 必要的 number 参数是任何有效的数值表达式,如果 number 包含 Null,则返回 Null,如果 number 是未初始化的变量,则返回 0。说明一个数的绝对值是将正负号去掉以后的值。例如,ABS(-1) 和 ABS(1) 都返回 1。Abs 函数示例本示例使用 Abs 函数计算数的绝对值。Dim MyNumberMyNumber = Abs(50.3) 返回 50.3。MyNumber
2、 = Abs(-50.3) 返回 50.3。请参阅:Sgn 函数、数学函数中的Abs 函数、Atn 函数、Cos 函数、Exp 函数、Fix 函数、Int 函数、Log 函数、Rnd 函数、Sgn 函数、Sin 函数、Sqr 函数、Tan 函数、导出的数学函数:导出的数学函数以下为非基本数学函数的列表,皆可由基本数学函数导出:函数由基本函数导出之公式Secant(正割)Sec(X) = 1 / Cos(X)Cosecant(余割)Cosec(X) = 1 / Sin(X)Cotangent(余切)Cotan(X) = 1 / Tan(X)Inverse Sine (反正弦)Arcsin(X)
3、= Atn(X / Sqr(-X * X + 1)Inverse Cosine (反余弦)Arccos(X) = Atn(-X / Sqr(-X * X + 1) + 2 * Atn(1)Inverse Secant (反正割)Arcsec(X) = Atn(X / Sqr(X * X - 1) + Sgn(X) - 1) * (2 * Atn(1)Inverse Cosecant (反余割)Arccosec(X) = Atn(X / Sqr(X * X - 1) + (Sgn(X) - 1) * (2 * Atn(1)Inverse Cotangent (反余切)Arccotan(X) =
4、Atn(X) + 2 * Atn(1)Hyperbolic Sine (双曲正弦)HSin(X) = (Exp(X) - Exp(-X) / 2 Hyperbolic Cosine (双曲余弦)HCos(X) = (Exp(X) + Exp(-X) / 2Hyperbolic Tangent (双曲正切)HTan(X) = (Exp(X) - Exp(-X) / (Exp(X) + Exp(-X)Hyperbolic Secant (双曲正割)HSec(X) = 2 / (Exp(X) + Exp(-X)Hyperbolic Cosecant(双曲余割)HCosec(X) = 2 / (Exp
5、(X) - Exp(-X)Hyperbolic Cotangent(双曲余切)HCotan(X) = (Exp(X) + Exp(-X) / (Exp(X) - Exp(-X)Inverse Hyperbolic Sine(反双曲正弦)HArcsin(X) = Log(X + Sqr(X * X + 1)Inverse Hyperbolic Cosine(反双曲余弦)HArccos(X) = Log(X + Sqr(X * X - 1)Inverse Hyperbolic Tangent(反双曲正切)HArctan(X) = Log(1 + X) / (1 - X) / 2Inverse Hy
6、perbolic Secant(反双曲正割)HArcsec(X) = Log(Sqr(-X * X + 1) + 1) / X)Inverse Hyperbolic CosecantHArccosec(X) = Log(Sgn(X) * Sqr(X * X + 1) + 1) / X)Inverse Hyperbolic Cotangent (反双曲余切)HArccotan(X) = Log(X + 1) / (X - 1) / 2以 N 为底的对数LogN(X) = Log(X) / Log(N)Array 函数返回一个包含数组的 Variant。语法Array(arglist) 所需的 a
7、rglist 参数是一个用逗号隔开的值表,这些值用于给 Variant 所包含的数组的各元素赋值。如果不提供参数,则创建一个长度为 0 的数组。说明用来表示数组元素的符号由变量名、圆括号以及括号中的所需元素的索引号组成。在下面的示例中,第一条语句创建一个 Variant 的变量 A。第二条语句将一个数组赋给变量 A。最后一条语句将该数组的第二个元素的值赋给另一个变量。Dim A As VariantA = Array(10,20,30)B = A(2)使用 Array 函数创建的数组的下界受 Option Base 语句指定的下界的决定, 除非 Array 是由类型库(例如 VBA.Array
8、 )名称限定。如果是由类型库名称限定,则 Array 不受 Option Base 的影响。注意 没有作为数组声明的 Variant 也可以表示数组。除了长度固定的字符串以及用户定义类型之外,Variant 变量可以表示任何类型的数组。尽管一个包含数组的 Variant 和一个元素为 Variant 类型的数组在概念上有所不同,但对数组元素的访问方式是相同的。Array 函数示例该示例使用 Array 函数来返回一个包含 Variant 的数组。Dim MyWeek, MyDayMyWeek = Array(Mon, Tue, Wed, Thu, Fri, Sat, Sun)返回值假设下界的设
9、置为 1(使用 Option Base 语句)。MyDay = MyWeek(2) MyDay 的值为 Tue。MyDay = MyWeek(4) MyDay 的值为 Thu。Asc 函数返回一个 Integer,代表字符串中首字母的字符代码。语法Asc(string) 必要的 string 参数可以是任何有效的字符串表达式。如果 string 中没有包含任何字符,则会产生运行时错误。说明在非 DBCS 系统下,返回值范围为 0 255 。在 DBCS 系统下,则为 -32768 32767。注意 AscB 函数作用于包含在字符串中的字节数据,AscB 返回第一个字节的字符代码,而非字符的字符
10、代码。AscW 函数返回 Unicode 字符代码,若平台不支持 Unicode,则与 Asc 函数功能相同。Asc 函数示例本示例使用 Asc 函数返回字符串首字母的字符值(ASCII 值)。Dim MyNumberMyNumber = Asc(A) 返回 65。MyNumber = Asc(a) 返回 97。MyNumber = Asc(Apple) 返回 65。Atn 函数返回一个 Double,指定一个数的反正切值。语法Atn(number) 必要的 number 参数是一个 Double或任何有效的数值表达式。说明Atn 函数的参数值 (number) 为直角三角形两边的比值并返回以
11、弧度为单位的角。这个比值是角的对边长度除以角的邻边长度之商。值的范围在 -pi/2 和 pi/2 弧度之间。为了将角度转换为弧度,请将角度乘以 pi/180。为了将弧度转换为角度,请将弧度乘以 180/pi。注意 Atn 是 Tan 的反三角函数,Tan 的参数值为角度,返回直角三角形的两条边的比值。不要将 Atn 和余切函数混淆,余切函数值是正切函数值的倒数,cotangent = (1/tangent)。Atn 函数示例本示例使用 Atn 函数计算圆周率。Dim pipi = 4 * Atn(1) 计算圆周率。CallByName 函数执行一个对象的方法,或者设置或返回一个对象的属性。语法
12、CallByName(object, procname, calltype,args() CallByName 函数的语法有以下命名参数:部分描述object必需的;变体型(对象)。函数将要执行的对象的名称。procname必需的;变体型(字符串)。一个包含该对象的属性名称或者方法名称的字符串表达式。calltype必需的;常数。一个 vbCallType 类型的常数,代表正在被调用的过程的类型。args()可选的:变体型(数组)。说明CallByName 函数用于获取或者设置一个属性,或者在运行时使用一个字符串名称来调用一个方法。在下面的例子中,第一行使用 CallByName 来设置一个文
13、本框的 MousePointer 属性,第二行得到 MousePointer 属性的值,第三行调用 Move 方法来移动文本框:CallByName Text1, MousePointer, vbLet, vbCrosshairResult = CallByName (Text1, MousePointer, vbGet)CallByName Text1, Move, vbMethod, 100, 100CBool等类型转换函数每个函数都可以强制将一个表达式转换成某种特定数据类型。语法CBool(expression) CByte(expression) CCur(expression) CD
14、ate(expression) CDbl(expression) CDec(expression) CInt(expression) CLng(expression) CSng(expression) CStr(expression) CVar(expression) 必要的 expression 参数可以是任何字符串表达式或数值表达式。返回类型函数名称决定返回类型,如下所示:函数返回类型expression 参数范围CBool Boolean任何有效的字符串或数值表达式。CByte Byte0 至 255。CCurCurrency-922,337,203,685,477.5808 至922,
15、337,203,685,477.5807。CDateDate任何有效的日期表达式。CDblDouble 负数从 -1.79769313486231E308 至 -4.94065645841247E-324;正数从 4.94065645841247E-324 至 1.79769313486232E308。CDecDecimal零变比数值,即无小数位数值,为 +/-79,228,162,514,264,337,593,543,950,335。对于 28 位小数的数值,范围则为 +/-7.9228162514264337593543950335;最小的可能非零值是 0.000000000000000
16、0000000000001。CIntInteger-32,768 至 32,767,小数部分四舍五入。CLngLong-2,147,483,648 至 2,147,483,647,小数部分四舍五入。CSngSingle负数为 -3.402823E38 至 -1.401298E-45;正数为 1.401298E-45 至 3.402823E38。CStrString依据 expression 参数返回 Cstr。CVarVariant若为数值,则范围与 Double 相同;若不为数值,则范围与 String 相同。说明如果传递给函数的 expression 超过转换目标数据类型的范围,将发生错误
17、。通常,在编码时可以使用数据类型转换函数,来体现某些操作的结果应该表示为特定的数据类型,而不是缺省的数据类型。例如,当单精度、双精度或整数运算发生的情况下,使用 CCur 来强制执行货币运算。应该使用数据类型转换函数来代替 Val,以使国际版的数据转换可以从一种数据类型转换为另一种。例如,当使用 Ccur 时,不同的小数点分隔符、千分位分隔符和各种货币选项,依据系统的区域设置都会被妥善识别。当小数部分恰好为 0.5 时,Cint 和 CLng 函数会将它转换为最接近的偶数值。例如,0.5 转换为 0、1.5 转换为 2。Cint 和 CLng 函数不同于 Fix 和 Int 函数,Fix 和
18、Int 函数会将小数部分截断而不是四舍五入。并且 Fix 和 Int 函数总是返回与传入的数据类型相同的值。使用 IsDate 函数,可判断 date 是否可以被转换为日期或时间。Cdate 可用来识别日期文字和时间文字,以及落入可接受的日期范围内的数值。当转换一个数字成为日期时,是将整数部分转换为日期,小数部分转换为从午夜起算的时间。CDate 依据系统上的区域设置来决定日期的格式。如果提供的格式为不可识别的日期设置,则不能正确判断年、月、日的顺序。另外,长日期格式,若包含有星期的字符串,也不能被识别。CVDate 函数也提供对早期 Visual Basic 版本的兼容性。CVDate 函数
19、的语法与 CDate 函数是完全相同的,不过,CVDate 是返回一个 Variant,它的子类型是 Date,而不是实际的 Date 类型。因为现在已有真正的 Date 类型,所以 CVDate 也不再需要了。转换一个表达式成为 Date,再赋值给一个 Variant,也可以达到同样的效果。也可以使用这种技巧将其他真正的数据类型转换为对等的 Variant 子类型。注意 CDec 函数不能返回独立的数据类型,而总是返回一个 Variant,它的值已经被转换为 Decimal 子类型。CBool 函数示例本示例使用 CBool 函数来将一表达式转成 Boolean 值。如果表达式的结果为非零的
20、值,CBool 返回 True;否则返回 False。Dim A, B, CheckA = 5: B = 5 设置变量初值。Check = CBool(A = B) Check 的值为 True。A = 0 定义变量。Check = CBool(A) Check 的值为 False。CByte 函数示例本示例使用 CByte 函数将一表达式转成 Byte。Dim MyDouble, MyByteMyDouble = 125.5678 MyDouble 为Double(双精度)。MyByte = CByte(MyDouble) MyByte 值为 126。CCur 函数示例本示例使用 CCur
21、函数将表达式转成 Currency。Dim MyDouble, MyCurrMyDouble = 543.214588 MyDouble 为 Double 类型。MyCurr = CCur(MyDouble * 2) 将 MyDouble * 2 的结果 (1086.429176)转换为 Currency (1086.4292)。CDate 函数示例本示例使用 CDate 函数将字符串转换成 Date。一般说来,字符串格式的日期与时间硬编码(如示例中所示)并不好。较好的做法是使用日期原义表达式和时间的原义表达式(如 #2/12/1969#,#4:45:23 PM#)。Dim MyDate, M
22、yShortDate, MyTime, MyShortTimeMyDate = February 12, 1969 定义日期。MyShortDate = CDate(MyDate) 转换为 Date 数据类型。MyTime = 4:35:47 PM 定义时间。MyShortTime = CDate(MyTime) 转换为 Date 数据类型。CDbl 函数示例本示例使用 CDbl 函数将表达式转换为 Double 类型。Dim MyCurr, MyDoubleMyCurr = CCur(234.456784) MyCurr 为 Currency 类型。MyDouble = CDbl(MyCur
23、r * 8.2 * 0.01) 将结果转换为 Double 类型。CDec 函数示例该示例使用 CDec 函数将数字值转换为 Decimal。Dim MyDecimal, MyCurrMyCurr = 10000000.0587 MyCurr 是货币。MyDecimal = CDec(MyCurr) MyDecimal 是二进制数。CInt 函数示例本示例使用 CInt 函数将一数值转换为 Integer。Dim MyDouble, MyIntMyDouble = 2345.5678 MyDouble 为 Double 类型。MyInt = CInt(MyDouble) MyInt 的值为 2
24、346。CLng 函数示例本示例使用 CLng 函数将一数值转换为 Long。Dim MyVal1, MyVal2, MyLong1, MyLong2MyVal1 = 25427.45: MyVal2 = 25427.55 MyVal1、MyVal2 均为 Double 类型。MyLong1 = CLng(MyVal1) MyLong1 的值为 25427。MyLong2 = CLng(MyVal2) MyLong2 的值为 25428。CSng 函数示例本示例使用 CSng 函数将一数值转换为 Single。Dim MyDouble1, MyDouble2, MySingle1, MySin
25、gle2 MyDouble1、MyDouble2 均为 Double 类型。MyDouble1 = 75.3421115: MyDouble2 = 75.3421555MySingle1 = CSng(MyDouble1) MySingle1 的值为 75.34211。MySingle2 = CSng(MyDouble2) MySingle2 的值为 75.34216。CStr 函数示例本示例使用 CStr 函数将一数值转换为 String。Dim MyDouble, MyStringMyDouble = 437.324 MyDouble 为 Double 类型。MyString = CStr
26、(MyDouble) MyString 的内容为“437.324”。CVar 函数示例本示例使用 CVar 函数将表达式转换为 Variant。Dim MyInt, MyVarMyInt = 4534 MyInt 为 Integer 类型。MyVar = CVar(MyInt & 000) MyVar 的内容为字符串“4534000”。Choose 函数从参数列表中选择并返回一个值。语法Choose(index, choice-1, choice-2, . , choice-n) Choose 函数的语法具有以下几个部分:部分描述index必要参数,数值表达式或字段,它的运算结果是一个数值,且
27、界于 1 和可选择的项目数之间。choice必要参数,Variant 表达式,包含可选择项目的其中之一。说明Choose 会根据 index 的值来返回选择项列表中的某个值。如果 index 是 1,则 Choose 会返回列表中的第 1 个选择项。如果 index 是 2,则会返回列表中的第 2 个选择项,以此类推。可以使用 Choose 来查阅一个列表中的项目。例如,如果 index 所指定的值为 3,而 choice-1 = one、choice-2 = two、且 choice-3 = three,那么 Choose 将返回 three。当 index 代表一选项组中的值时,则这项功能
28、将会特别有用。即使它只返回一个选项值,Choose 仍然会计算列表中的每个选择项。所以应该注意到这项副作用。例如,当在每个选择项表达式中使用了 MsgBox 函数作为其中的一部分时,每计算一个选择项,就会显示一次消息框。当 index小于 1 或大于列出的选择项数目时,Choose 函数返回 Null。如果 index 不是整数,则会先四舍五入为与其最接近的整数。Choose 函数示例本示例使用 Choose 函数来显示一个名称,该名称对应於用 Ind 参数传递到过程之中的索引。Function GetChoice(Ind As Integer) GetChoice = Choose(Ind,
29、 Speedy, United, Federal)End FunctionChr 函数返回 String,其中包含有与指定的字符代码相关的字符 。语法Chr(charcode) 必要的 charcode 参数是一个用来识别某字符的 Long。说明0 到 31 之间的数字与标准的非打印 ASCII 代码相同。例如,Chr(10) 可以返回换行字符。charcode 的正常范围为 0 255。然而,在 DBCS 系统,charcode 的实际范围为 -32768 到 65535。注意 ChrB 函数作用于包含在 String 中的字节数据。ChrB 总是返回一个单字节,而不是返回一个字符,一个字符
30、可能是一个或两个字节。ChrW 函数返回包含 Unicode 的 String,若在不支持 Unicode 的平台上,则其功能与 Chr 函数相同。注意 Visual Basic for the Macintosh 不支持Unicode 字符串。因此,当n 值在128 65,535 范围内时, ChrW(n) 不能像在Windows环境中那样返回所有的 Unicode 字符。相反地,当Unicode 的n 值大于127 时,ChrW(n) 会试图做一个“最好的猜测”。因此,在Macintosh 环境中,不能使用ChrW 。Chr 函数示例本示例使用 Chr 函数来返回指定字符码所代表的字符。Dim MyCharMyChar = Chr(65) 返回 A。MyChar = Chr(97) 返回 a。MyChar = Chr(62) 返回 。MyChar = Chr(37) 返回 %。Command 函数返回命令行的参数部分,该命令行用于装入 Microsoft Visual Basic 或 Visual Basic 开发的可执行程序。Visual Basic Command 函数在 Microsoft Offi
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1