VBA数据类型及内置函数

内容转载自:罗刚君-《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]])返回一个下标从零开始的数组,该数组包含基于指定筛选条件的一个字符串数组的子集。
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VBA是Visual Basic for Applications的缩写,是一种用于Microsoft Office应用程序的编程语言。VBA可以帮助我们通过编写宏和函数来自动化任务,提高工作效率。在VBA中,我们可以利用内函数和自定义函数来实现各种功能。 CHM是Microsoft编译的一种帮助文件格式,包含了软件的使用说明、帮助、索引等内容。有时候我们需要在VBA中操作CHM文件,例如下载CHM文件到本地。 要在VBA中下载CHM文件,我们可以使用网络请求的方法实现。首先,我们需要使用VBA的网络请求对象,例如XMLHTTP对象或者WinHttpRequest对象,来发送HTTP请求。然后,我们可以指定要下载的CHM文件的URL地址。接着,我们可以使用SaveToFile方法将文件保存到本地指定的路径。 以下是一个简单的示例代码: ```vba Sub DownloadCHMFile() Dim url As String Dim savePath As String ' 设下载地址和保存路径 url = "http://example.com/file.chm" savePath = "C:\downloads\file.chm" ' 创建HTTP请求对象 Dim request As Object Set request = CreateObject("WinHttp.WinHttpRequest.5.1") ' 发送GET请求 request.Open "GET", url, False request.Send ' 将文件保存到本地 Dim fileStream As Object Set fileStream = CreateObject("ADODB.Stream") fileStream.Type = 1 ' 二进制文件类型 fileStream.Open fileStream.Write request.responseBody fileStream.SaveToFile savePath, 2 ' 保存文件 ' 清理资源 fileStream.Close Set fileStream = Nothing Set request = Nothing MsgBox "CHM文件下载完成!" End Sub ``` 在上面的代码中,我们通过WinHttpRequest对象发送GET请求,获取HTTP响应体内容,即CHM文件的二进制数据。然后,我们使用ADODB.Stream对象将文件写入到本地保存路径。最后,我们清理对象并显示下载完成的提示信息。 需要注意的是,你需要将代码中的URL地址和保存路径替换为你要下载的CHM文件的真实地址和保存路径。另外,如果你需要添加错误处理,可以使用Try...Catch语句块来处理网络请求的异常情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值