首页 > 代码库 > VBA学习笔记(2)-过程
VBA学习笔记(2)-过程
过程是执行一个或多个给定任务的集合。
分成:子程序和函数。
1.子程序
[Private|Public|Friend] [Static] Sub name [(arglist)][staements][Exit sub][statements]End Sub
Friend 表示Sub在整个工程可见,但对象实例控制者不可见
2.函数,有返回值
[Private|Public|Friend] [Static] Sub name [(arglist)] [As type][statements][name= expression][Exit Function][statements][name= expression]End Function
函数传参数是可选的,调用时可以用 IsMissing函数检测,返回Boolean值;
If ( IsMissing(A)) Then‘....Else‘....End if
但对于ParamArray参数,IsMissing返回总是False,可以检测上界是否小于下界 (UBound(a())返回a的上界)
3.调用 直接名字 或Call来调用
4.VBA内置函数
1).测试函数
IsNumeric(x) ‘是否为数字, 返回Boolean结果,True or False
IsDate(x) ‘是否是日期, 返回Boolean结果,True or False
IsEmpty(x) ‘是否为Empty, 返回Boolean结果,True or False
IsArray(x) ‘指出变量是否为一个数组。
IsError(expression) ‘指出表达式是否为一个错误值
IsNull(expression) ‘指出表达式是否不包含任何有效数据 (Null)。
IsObject(identifier) ‘指出标识符是否表示对象变量
2).数学函数
Sin(X)、Cos(X)、Tan(X)、Atan(x) ‘三角函数,单位为弧度
Log(x) ’返回x的自然对数
Exp(x)‘返回 ex
Abs(x) ’返回绝对值
Int(number)、Fix(number) ‘都返回参数的整数部分,区别:Int 将 -8.4 转换成 -9,而 Fix 将-8.4 转换成 -8
Sgn(number) ’返回一个 Variant (Integer),指出参数的正负号
Sqr(number) ‘返回一个 Double,指定参数的平方根
VarType(varname) ’返回一个 Integer,指出变量的子类型
Rnd(x)‘返回0-1之间的单精度数据,x为随机种子
3).字符串函数
Trim(string) 去掉string左右两端空白
Ltrim(string) 去掉string左端空白
Rtrim(string) 去掉string右端空白
Len(string) 计算string长度
Left(string, x) 取string左段x个字符组成的字符串
Right(string, x) 取string右段x个字符组成的字符串
Mid(string, start,x) 取string从start位开始的x个字符组成的字符串
Ucase(string) 转换为大写
Lcase(string) 转换为小写
Space(x) 返回x个空白的字符串
Asc(string) 返回一个 integer,代表字符串中首字母的字符代码
Chr(charcode) 返回 string,其中包含有与指定的字符代码相关的字符
3)转换函数,常用的是:
Val(string) 转换为数据型
Str(number) 转换为String
其它:CBool(expression),CByte,CDate等
5).时间函数
Now 返回一个 Variant (Date),根据计算机系统设置的日期和时间来指定日期和时间。
Date 返回包含系统日期的 Variant (Date)。
Time 返回一个指明当前系统时间的 Variant (Date)。
Timer 返回一个 Single,代表从午夜开始到现在经过的秒数。
TimeSerial(hour, minute, second) 返回一个 Variant (Date),包含具有具体时、分、秒的时间。
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]]) 返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目
Second(time) 返回一个 Variant (Integer),其值为 0 到 59 之间的整数,表示一分钟之中的某个秒
Minute(time) 返回一个 Variant (Integer),其值为 0 到 59 之间的整数,表示一小时中的某分钟
Hour(time) 返回一个 Variant (Integer),其值为 0 到 23 之间的整数,表示一天之中的某一钟点
Day(date) 返回一个 Variant (Integer),其值为 1 到 31 之间的整数,表示一个月中的某一日
Month(date) 返回一个 Variant (Integer),其值为 1 到 12 之间的整数,表示一年中的某月
Year(date) 返回 Variant (Integer),包含表示年份的整数。
Weekday(date, [firstdayofweek]) 返回一个 Variant (Integer),包含一个整数,代表某个日期是星期几
REF:http://club.excelhome.net/forum.php?mod=viewthread&tid=178278&extra=page%3D3%26filter%3Ddigest%26digest%3D1&page=2
收藏一个好的论坛贴子:
[原创]Excel VBA 快速上手之宝典
http://club.excelhome.net/thread-178278-1-1.html
VBA学习笔记(2)-过程