内容转载自:罗刚君-《EXCEL VBA范例大全》
仅供学习使用,版权相关,请联系删除;如转载请注明原出处;
一、VBA数据类型
一个变量如果事先未声明类型,则未Variant变体型;如果明确变量大小,在程序开头应事先定义数据类型,一方面节约内存,一方面提升运行速度;
dim i # 未声明具体类型,则默认是变体型variant
' 使用for each,变量必须为变体型
for each num in array(1,2,3)
debug.print num
next
二、VBA内置函数
1. 判断函数
- IsNumeric(expression) 指出表达式的运算结果是否为数字。
- IsDate(expression) 指出一个表达式是否可以转换成日期。
- IsEmpty(expression) 指出变量是否已经初始化。
- IsArray(varname) 指出变量是否为一个数组。
- IsError(expression) 指出表达式是否为一个错误值。
- IsNull(expression) 指出表达式是否不包含任何有效数据(Null)。
- IsObject(identifier) 指出标识符是否表示对象变量。
2. 数学函数
- Log(number) 返回x的自然对数。
- Exp(number) 返回Double,指定e(自然对数的底)的某次方。
- Abs(number) 返回参数的绝对值,其类型和参数相同。
- Int(number)、Fix(number) 都返回参数的整数部分。
- Sgn(number) 返回一个Variant (Integer),指出参数的正负号。
- Sqr(number) 返回一个Double,指定参数的平方根。
- VarType(varname) 返回一个Integer,指出变量的子类型。
- Rnd[(number)] 返回一个包含随机数值的Single。
- Partition返回一个Variant (String),指定一个范围,在一系列计算的范围中指定的数字出现在这个范围内。
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,根据字符代码返回字符,与Asc相反。chr(10)是换行符,chr(9)是制表符;对应excel函数:char;VBA中不像python可以直接输入多行字符串;需要使用该换行函数拼接;
- Replace返回一个字符串,该字符串中指定的子字符串已被替换成另一个子字符串,并且替换发生的次数也是指定的。
- InStr指定一个字符串在另一个字符串中最先出现的位置。
InStr("abc", "bb")
返回0;InStr("abc", "b")
返回2;该函数使用频率较高; - StrReverse返回一个字符串,表示指定字符串的反向字符。
- StrComp返回Variant(Integer),为字符串比较的结果。
- InstrRev(stringcheck, stringmatch[, start[, compare]])返回一个字符串在另一个字符串中出现的位置,从字符串的末尾算起。
- Format(expression[, format[, firstdayofweek[, firstweekofyear]]])返回Variant (String),其中含有一个表达式,它是根据格式表达式中的指令来格式化的。类同excel的text函数
- InputBox在一个对话框来中显示提示,等待用户输入正文或按下按钮,并返回包含文本框内容的String。
4. 转换函数
- CBool(expression) 转换为Boolean型。
- CByte(expression) 转换为Byte型。
- CCur(expression) 转换为Currency型。
- CDate(expression) 转换为Date型。
- CDbl(expression) 转换为Double型。
- CDec(expression) 转换为Decemal型。
- CInt(expression) 转换为Integer型。
- CLng(expression) 转换为Long型。
- CSng(expression) 转换为Single型。
- CStr(expression) 转换为String型。
- CVar(expression) 转换为Variant型。
- Val(string) 转换为数据型。
- Str(number) 转换为String。
- VarType(varname) 返回一个Integer,指出变量的子类型
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值,表示两个指定日期间的时隔数目。
- Second(time) 返回0到59之间的整数,表示一分钟之中的某一秒。
- Minute(time) 返回0到59之间的整数,表示一小时中的某一分钟。
- Hour(time) 返回0到23之间的整数,表示一天之中的某一钟点。
- Day(date) 返回1到31之间的整数,表示一个月中的某一日。
- Month(date) 返回1到12之间的整数,表示一年中的某一月。
- Year(date) 返回Variant(Integer),包含表示年份的整数。
- Weekday(date, [firstdayofweek])计算某个日期是星期几。
- WeekdayName(weekday, abbreviate, firstdayofweek)返回一个字符串,表示一星期中的某天。
- MonthName(month[, abbreviate])返回一个字符串,表示指定月份的字符串。
6. 文件夹与文件函数
- Dir[(pathname[, attributes])] 返回String,用以表示一个文件名、目录名或文件夹名称
- Kill (pathname) 从磁盘中删除文件。
- RmDir (Path) 删除一个存在的目录或文件夹。
- GetDriveName(path) 返回一个包含指定路径的驱动器名字的字符串。
- CurDir返回一个Variant (String),用来代表当前的路径。
- Environ返回String,它关联于一个操作系统环境变量。
- Open pathname For mode [Access access] [lock] As [#]filenumber [Len=reclength]能够对文件输入/输出 (I/O)。
- Input #filenumber, varlist返回String,它包含以Input或Binary方式打开的文件中的字符。
- FileLen(pathname) 返回一个Long,代表一个文件的长度,单位是字节。
- Get [#]filenumber, [recnumber], varname将一个已打开的磁盘文件读入一个变量之中。
- Write #filenumber, [outputlist]将数据写入顺序文件。
- Print #filenumber, [outputlist]将格式化显示的数据写入顺序文件中。
- Put [#]filenumber, [recnumber], varname将一个变量的数据写入磁盘文件中。
- Close [filenumberlist] 关闭Open语句所打开的输入/输出(I/O)文件。
- LOF(filenumber) 返回一个Long,表示用Open语句打开的文件的大小,该大小以字节为单位。
- EOF(filenumber) 返回一个Integer,它包含Boolean值True,表明已经到达为Random或顺序Input打开的文件的结尾。
- Loc(filenumber) 返回一个Long,在已打开的文件中指定当前读/写位置。
- Seek(filenumber) 返回一个Long,在打开的文件中指定当前的读/写位置。
7. 数组相关函数
- Array(arglist) 返回一个包含数组的Variant。
- UBound(arrayname[, dimension])返回指定的数组维可用的最大下标。
- LBound(arrayname[, dimension])返回指定的数组维可用的最小下标。
- Split(expression[, delimiter[, limit[, compare]]])返回一个下标从零开始的一维数组,它包含指定数目的子字符串。
- Join(sourcearray[, delimiter]) 返回一个字符串,该字符串是通过连接某个数组中的多个子字符串而创建的。
- Filter(sourcesrray, match[, include[, compare]])返回一个下标从零开始的数组,该数组包含基于指定筛选条件的一个字符串数组的子集。