VBA数据类型及内置函数

内容转载自:罗刚君-《EXCEL VBA范例大全》

仅供学习使用,版权相关,请联系删除;如转载请注明原出处;

一、VBA数据类型

一个变量如果事先未声明类型,则未Variant变体型;如果明确变量大小,在程序开头应事先定义数据类型,一方面节约内存,一方面提升运行速度;

VBA数据类型及内置函数_第1张图片

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]])返回一个下标从零开始的数组,该数组包含基于指定筛选条件的一个字符串数组的子集。

你可能感兴趣的:(VBA,VBA,数据类型,内置函数)