Excel-VBA-编程教程-2015-完整版(2)

2018-12-17 09:55

Excel-VBA-编程教程-2015-完整版

语法如下:

OnErrorGotoLine‘当错误发生时,会立刻转移到line行去

OnErrorResumeNext‘当错误发生时,会立刻转移到发生错误的下一行去 OnErroGoto0‘当错误发生时,会立刻停止过程中任何错误处理过程

第十一节过程和函数

过程是构成程序的一个模块,往往用来完成一个相对独立的功能。过程可以使程序更清晰、 更具结构性。VBA具有四种过程:Sub过程、Function函数、Property属性过程和Event事件 过程。

一.Sub过程

Sub过程的参数有两种传递方式:按值传递(ByVal)和按地址传递(ByRef)。如下例: Subpassword(ByValxasinteger,ByRefyasinteger) Ify=100theny=x+yelsey=x-y x=x+100 Endsub

Subcall_password() Dimx1asinteger Dimy1asinteger x1=12 y1=100

Callpassword(x1,y1)‘调用过程方式:1.Call过程名(参数1,参数2?);2.过 程名参数1,参数2? 4

-----------------------页面14-----------------------

VBA语言基础

debug.printx1,y1‘结果是12、112,y1按地址传递改变了值,而x1按值传递,未 改变原值 Endsub

二.Function函数

函数实际是实现一种映射,它通过一定的映射规则,完成运算并返回结果。参数传递也两 种:按值传递(ByVal)和按地址传递(ByRef)。如下例:

Functionpassword(ByValxasinteger,byrefyasinteger)asboolean Ify=100theny=x+yelsey=x-y x=x+100

ify=150thenpassword=trueelsepassword=false EndFunction

Subcall_password() Dimx1asinteger Dimy1asinteger

Excel-VBA-编程教程-2015-完整版

Excel-VBA-编程教程-2015-完整版

x1=12 y1=100

ifpasswordthen‘调用函数:1.作为一个表达式放在=右端;2.作为参数使用 debug.printx1 endif Endsub

三.Property属性过程和Event事件过程

这是VB在对象功能上添加的两个过程,与对象特征密切相关,也是VBA比较重要组成,技 术比较复杂,可以参考相关书籍。

第十二节内部函数

在VBA程序语言中有许多内置函数,可以帮助程序代码设计和减少代码的编写工作。 一.测试函数

IsNumeric(x)‘是否为数字,返回Boolean结果,TrueorFalse IsDate(x)‘是否是日期,返回Boolean结果,TrueorFalse IsEmpty(x)‘是否为Empty,返回Boolean结果,TrueorFalse IsArray(x)‘指出变量是否为一个数组。

IsError(expression)‘指出表达式是否为一个错误值

IsNull(expression)‘指出表达式是否不包含任何有效数据(Null)。 IsObject(identifier)‘指出标识符是否表示对象变量 二.数学函数

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为随机种子 三.字符串函数

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)转换为大写 5

Excel-VBA-编程教程-2015-完整版

Excel-VBA-编程教程-2015-完整版

-----------------------页面15-----------------------

VBA语言基础

Lcase(string)转换为小写

Space(x)返回x个空白的字符串

Asc(string)返回一个integer,代表字符串中首字母的字符代码

Chr(charcode)返回string,其中包含有与指定的字符代码相关的字符 四.转换函数

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 五.时间函数

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),包含一个整数,代表某个

Excel-VBA-编程教程-2015-完整版

Excel-VBA-编程教程-2015-完整版

日期是星期几

第十三节文件操作

文件

Dir[(pathname[,attributes])];pathname可选参数,用来指定文件名的字符串表达式,可 能包含目录或文件夹、以及驱动器。如果没有找到pathname,则会返回零长度字符串(\attributes可选参数。常数或数值表达式,其总和用来指定文件属性。如果省略,则会返回匹 配pathname但不包含属性的文件。 删除

Killpathname从磁盘中删除文件,pathname参数是用来指定一个文件名

RmDirpathname从磁盘中删除目录,pathname参数是用来指定一个文件夹 打开

OpenpathnameFormode[Accessaccess][lock]As[#]filenumber[Len=reclength]能够 对文件输入/输出(I/O)。

pathname必要。字符串表达式,指定文件名,该文件名可能还包括目录、文件夹及驱动器。 6

-----------------------页面16-----------------------

VBA语言基础

mode必要。关键字,指定文件方式,有Append、Binary、Input、Output、或Random方式。 如果未指定方式,则以Random访问方式打开文件。

access可选。关键字,说明打开的文件可以进行的操作,有Read、Write、或ReadWrite操 作。

lock可选。关键字,说明限定于其它进程打开的文件的操作,有Shared、LockRead、LockWrite、 和LockReadWrite操作。

filenumber必要。一个有效的文件号,范围在1到511之间。使用FreeFile函数可得到下 一个可用的文件号。reclength可选。小于或等于32,767(字节)的一个数。对于用随机访 问方式打开的文件,该值就是记录长度。对于顺序文件,该值就是缓冲字符数。

说明对文件做任何I/O操作之前都必须先打开文件。Open语句分配一个缓冲区供文件进行 I/O之用,并决定缓冲区所使用的访问方式。如果pathname指定的文件不存在,那么,在用 Append、Binary、Output、或Random方式打开文件时,可以建立这一文件。如果文件已由其 它进程打开,而且不允许指定的访问类型,则Open操作失败,而且会有错误发生。如果mode 是Binary方式,则Len子句会被忽略掉。

重要在Binary、Input和Random方式下可以用不同的文件号打开同一文件,而不必先将该 文件关闭。在Append和Output方式下,如果要用不同的文件号打开同一文件,则必须在打 开文件之前先关闭该文件。 读入

Input#filenumber,varlist从已打开的顺序文件中读出数据并将数据指定给变量

Get[#]filenumber,[recnumber],varname将一个已打开的磁盘文件读入一个变量之中。 写入

Excel-VBA-编程教程-2015-完整版

Excel-VBA-编程教程-2015-完整版

Write#filenumber,[outputlist]将数据写入顺序文件

Print#filenumber,[outputlist]将格式化显示的数据写入顺序文件中

Put[#]filenumber,[recnumber],varname将一个变量的数据写入磁盘文件中。 关闭

Close[filenumberlist]关闭Open语句所打开的输入/输出(I/O)文件

注意如果今后想用Input#语句读出文件的数据,就要用Write#语句而不用Print#语

句将数据写入文件。因为在使用Write#时,将数据域分界就可确保每个数据域的完整性,因 此可用Input#再将数据读出来。使用Write#还能确保任何地区的数据都被正确读出。Write 与Print#语句不同,当要将数据写入文件时,Write#语句会在项目和用来标记字符串的引 号之间插入逗号。Write#语句在将outputlist中的最后一个字符写入文件后会插入一个新 行字符,即回车换行符,(Chr(13)+Chr(10))。 其他文件函数

LOF(filenumber)返回一个Long,表示用Open语句打开的文件的大小,该大小以字节为单 位。

EOF(filenumber)返回一个Integer,它包含Boolean值True,表明已经到达为Random或 顺序Input打开的文件的结尾。

Loc(filenumber)返回一个Long,在已打开的文件中指定当前读/写位置

Seek(filenumber)返回一个Long,在Open语句打开的文件中指定当前的读/写位 7

-----------------------页面17-----------------------

VisualBASIC程序设计网络教学橄榄树 整理

二、VisualBASIC程序设计网络教学

第一课VBA是什么

1.1VBA是什么

直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程 序,人们不得不学习一种不同的自动化语言.例如:可以用EXCEL的宏语言来使EXCEL自动化,使 用WORDBASIC使WORD自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化 语言--------VisualBasicForApplication(VBA),可以认为VBA是非常流行的应用程序开发

语言VASUALBASIC的子集.实际上VBA是\寄生于\应用程序的版本.VBA和VB的区别包括如 下几个方面:

1.VB是设计用于创建标准的应用程序,而VBA是使已有的应用程序(EXCEL等)自动化 2.VB具有自己的开发环境,而VBA必须寄生于已有的应用程序.

3.要运行VB开发的应用程序,用户不必安装VB,因为VB开发出的应用程序是可执行文件 (*.EXE),而VBA开发的程序必须依赖于它的\父\应用程序,例如EXCEL.

尽管存在这些不同,VBA和VB在结构上仍然十分相似.事实上,如果你已经了解了VB,会发现

Excel-VBA-编程教程-2015-完整版


Excel-VBA-编程教程-2015-完整版(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:环卫站车队管理制度

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: