




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录目录序序 -3VBA编程环境编程环境-7VBA编程基础编程基础-12VBA常用语句常用语句-32VBA流程控制流程控制-35VBA数组数组-57VBA过程过程-69VBA操作数据库操作数据库-76VBA是什么是什么?1VBA有什么作用?有什么作用?2怎么样才能学好怎么样才能学好VBA?3序言序言 简单的说VBA是一种编程语言,它可以支持在Office系列软件中命令和功能的编写。Excel VBA则是以Microsoft Excel为开发对象的VBA语言。如运行下面的VBA代码就可以在单元格A1中输入100。Sub T1() Range(a1) = 100End Sub完成重复性的劳动完成重
2、复性的劳动 如果你需要经常重复的做如果你需要经常重复的做某个工作,那么可以编写一个某个工作,那么可以编写一个VBA代码来帮代码来帮你快速完成你快速完成。克服克服excel自身功能的局限性自身功能的局限性 excel提供的功能提供的功能有效,提供的函数也有效。而我们利用有效,提供的函数也有效。而我们利用VBA则可以自定义功能、自定义函数。则可以自定义功能、自定义函数。编制自已的应用软件编制自已的应用软件 即使你不是专业的编程即使你不是专业的编程人员,你也可以利用人员,你也可以利用VBA+Excel编写出你想编写出你想要的应用软件要的应用软件6、独立编写、独立编写VBA小软件小软件1、身边备有几本
3、、身边备有几本VBA参考书参考书5、多帮助别人,多总结、多帮助别人,多总结4、多练习、多思考、多提问、多练习、多思考、多提问2、常用录制宏功能、常用录制宏功能3、多查看帮助文件、多查看帮助文件Text工程窗口工程窗口选择对象选择对象选择选择事件事件属性窗口属性窗口选择对象选择对象的属性的属性代码代码窗口窗口 然后在然后在“开发工具开发工具”选项卡的选项卡的“代码代码”区域里区域里按按”Visual Basic”Visual Basic”按键,就可以打开同样的界面按键,就可以打开同样的界面 Microsoft Excel插入模块运行子过程/用户窗体设计模式中断重新设计 工程资源管理器对象浏览器属
4、性窗口 73 x 语句组语句组2 2语句组语句组1 1T TF F语句组语句组2 2条件条件语句组语句组1 1F FT T条件条件语句组语句组T TF F条件条件语句组语句组T TF F语句语句2 2条件条件语句语句1 1T TF F条件条件语句语句1 1Private Sub p1( )Private Sub p1( ) Dim x As Integer, y As Integer Dim x As Integer, y As Integer x = InputBox( x = InputBox(“请输入请输入x x值值”) ) IfIf x = 0 x = 0 ThenThen y = 2
5、 y = 2 * * x + 1 x + 1 ElseElse y = 1 y = 1 MsgBox y: & y MsgBox y: & yEnd SubEnd Subyxxxxxxxsincos231030 T x yT z 为最小数T 使得 x yFFF x yzx y x 与 y 交换y z y 与 z 交换x y x 与 y 交换 If xy Then t=x: x=y: y=t 例:例:计算累加程序计算累加程序 S=1+2+3+4.+x,S=1+2+3+4.+x,并输出结果。并输出结果。 V-6 VBA V-6 VBA过程过程 过程是构成程序的一个模块,往往用过程是
6、构成程序的一个模块,往往用来完成一个相对独立的功能。过程可以使来完成一个相对独立的功能。过程可以使程序更清晰、更具结构性。程序更清晰、更具结构性。VBA VBA 具有四种具有四种过程:过程:Sub Sub 过程、过程、Function Function 函数、函数、Property Property 属性过程和属性过程和Event Event 事件过程。事件过程。 Sub Sub过程执行一些有用的任务但是不返回任过程执行一些有用的任务但是不返回任何值,它们以关键字何值,它们以关键字SubSub开头并以关键字开头并以关键字End SubEnd Sub结束。如下例:结束。如下例: V-6-1 Su
7、b V-6-1 Sub过程过程Sub main()Sub main() MsgboxMsgbox(“Hello!”)(“Hello!”)End SubEnd Sub第一行第一行SubSub表示过程的开始,表示过程的开始,mainmain为过程名为过程名; ;第二行是过程的主体,调用函数第二行是过程的主体,调用函数MsgboxMsgbox(),(),输输 出出”Hello!”;”Hello!”;最后最后End SubEnd Sub表示过程表示过程 的结束。的结束。Sub Sub 过程的参数有两种传递方式:过程的参数有两种传递方式:按值传递按值传递(ByVal)(ByVal)和按地址传递和按地址传
8、递(ByRef)(ByRef)。如下例:。如下例:Sub password (Sub password (ByValByVal x as integer, x as integer, ByRefByRef y as y as integer)integer) If y=100 then y=x+y else y=x-y If y=100 then y=x+y else y=x-y x=x+100 x=x+100End subEnd sub 1 Sub过程的参数传递过程的参数传递在上例中,过程在上例中,过程passwordpassword每次执行时需要向其传递两每次执行时需要向其传递两参数(参数
9、(x,yx,y),否则该过程不能执行。在传递),否则该过程不能执行。在传递x x与与y y参参数时,数时,x x不影响过程不影响过程passwordpassword外部外部x x的值,而的值,而y y则对过则对过程外的程外的y y值产生影响。值产生影响。 2 Sub过程的调用过程的调用调用过程有两种方式:调用过程有两种方式: 1. Call 过程名过程名(参数参数1, 参数参数2) ; 2. 过程名过程名 参数参数1, 参数参数2如下例如下例:Sub main() Call password(10,20) password 30,40End Sub方式方式1方式方式2注意:调用注意:调用Sub
10、过程也是在过程中进行的过程也是在过程中进行的 V-6-2 Function函数函数FunctionFunction函数实际是实现一种映射,它函数实际是实现一种映射,它通过一定的映射规则,完成运算并返回结果。通过一定的映射规则,完成运算并返回结果。 它们以关键字它们以关键字FunctionFunction开头并以关键字开头并以关键字End End FunctionFunction结束。如下例:结束。如下例:Function password(ByVal x as integer) as booleanFunction password(ByVal x as integer) as boolean
11、 if x=150 then password=true else password=false if x=150 then password=true else password=falseEnd FunctionEnd Function 函数函数password返回一个布尔值返回一个布尔值FunctionFunction函数的两各调用方式:函数的两各调用方式: 1.作为一个表达式放在作为一个表达式放在=右端右端 ; 2.作为参数使用作为参数使用;如下例:如下例:Sub main() Dim i As Integer i = getResult(20) Debug.Print i i = g
12、etResult(30) + i Debug.Print iEnd SubFunction getResult(ByVal i As Integer) As Integer Dim j As Integer getResult = 0 For j = 1 To i Step 1 getResult = getResult + j Next jEnd Function作为表达式作为表达式作为参数作为参数V-6-3V-6-3Property Property 属性过程和属性过程和Event Event 事件过程事件过程 这是这是VB 在对象功能上添加的两个过程,与对象在对象功能上添加的两个过程,与
13、对象特征密切相关,也是特征密切相关,也是VBA 比较重要组成,技术比较比较重要组成,技术比较复杂,可以参考相关书籍。复杂,可以参考相关书籍。V-7 V-7 简单介绍简单介绍VBAVBA操作操作SQL ServerSQL Server数据库数据库 这一节介绍的是利用这一节介绍的是利用ADO的的Connection对象来连接数据库,从面达到操作对象来连接数据库,从面达到操作SQL Server的目的。的目的。 首先要说的是首先要说的是ADO是什么?是什么?ADO的全称的全称是:是:Microsoft ActiveX Data Objects ,它使,它使您的客户端应用程序能够通过您的客户端应用程序
14、能够通过 OLE DB 提供提供者访问和操作数据库服务器中的数据。它的者访问和操作数据库服务器中的数据。它的主要优点是易于使用、速度快、内存支出低主要优点是易于使用、速度快、内存支出低和占用磁盘空间少。和占用磁盘空间少。V-7-1 V-7-1 建立对建立对ADOADO对象库的引用对象库的引用 要操作要操作ADO中的对象的话,首先就得创建对中的对象的话,首先就得创建对ADO对象库的引用。对象库的引用。1. 在在VB编辑器窗口,选择工具编辑器窗口,选择工具|引用以打开引用对引用以打开引用对话框。该对话框列出了你电脑上所有可用的类型库话框。该对话框列出了你电脑上所有可用的类型库2. 在清单上找到在清
15、单上找到Microsoft Active Data Objects 2.8 Library,并勾选上它,并勾选上它(2.8表示版本,可选表示版本,可选)3. 关闭引用对话框关闭引用对话框 一旦创建了对一旦创建了对ADO类型库的引类型库的引用,你就可以使用对象浏览器来查看该应用软件的用,你就可以使用对象浏览器来查看该应用软件的对象,属性和方法了。对象,属性和方法了。如下图:如下图:添加添加ADO类型库引类型库引用用查看查看ADO类类中的对象中的对象左键左键单击单击V-7-2 V-7-2 实例介绍操作实例介绍操作SQL Server SQL Server 下例程序是从下例程序是从SQL Serve
16、rSQL Server中查询数据,中查询数据,并且使查询出的数据填充到并且使查询出的数据填充到Workbook Workbook 的的sheet1sheet1中。再为数据库中的表作出更新操作。中。再为数据库中的表作出更新操作。如下:如下:Sub FillData() Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim CnStr As String Dim Sql As String Sql = select * from ao_cn.hcc_region CnStr = Provider=SQLOLEDB;Da
17、ta Source=IPaddress; “ _ & “UID=xxxxxx;pwd=xxxxx” CnStr = Provider=SQLOLEDB;Data Source=IPaddress; “ _ & “Integrated Security=SSPI conn.Open CnStr rs.Open Sql, conn, 1 Sheet1.A3.CopyFromRecordset rs conn.Execute (update tablename set column=xxxx) rs.Close conn.Close Set rs=Nothing Set conn =
18、 NothingEnd Sub1-2-3-4-5-6-7-8-9-10-11-12-13-14-15-16-17-18-19-注释:注释: 行行1:开始过程:开始过程FillData 行行2:定义连接:定义连接conn 行行3:定义数据库记录集:定义数据库记录集rs 行行4:定义字符串:定义字符串CnStr 行行5:定义字符串:定义字符串Sql 行行6:给:给Sql赋值(一数据库中的查询语句)赋值(一数据库中的查询语句) 行行7,8:给:给CnStr赋值(连接数据库的必须赋值(连接数据库的必须SQL Server验证)验证) 行行9,10:另一种另一种Windows验证连接数据库验证连接数据库
19、 行行11:按:按CnStr验证打开数据库连接验证打开数据库连接 行行12:按:按Sql语句在数据库中查询,并读取记录传递给语句在数据库中查询,并读取记录传递给rs 行行13:rs中的数据从中的数据从sheet1中的中的A3单元格开始填充单元格开始填充 行行14:执行更新操作:执行更新操作 行行15:关闭:关闭rs记录记录 行行16:关闭连接:关闭连接conn 行行17:释放:释放rs在内存中的空间在内存中的空间 行行18:释放:释放conn在内存中的空间在内存中的空间 行行19:结束过程:结束过程FillData;数据库连接验证:数据库连接验证: CnStr = Provider=SQLOLEDB;Data Source=IPaddress; “ _ & “UID=xxxxxx;pwd=xxxxx”指定用于连接的指定用于连接的提供者的名称提供者的名称指定数据库服务指定数据库服务器器IP地址地址指定登录数据库指定登录数据库的用户名的用户名指定登录数据库指定登录数据库的密码的密码CnStr = Provider=SQLOLEDB;Data Source
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 纤维生产项目管理与成本控制考核试卷
- 派遣工绩效考核考核试卷
- 毛皮制品加工安全生产培训考核试卷
- 内蒙古包头市第二中学2025年初三下学期2月份月考生物试题含解析
- 网络安全技术实践教程(微课版)-教案 Linux操作系统安全加固
- 山东体育学院《学前教育研究方法与应用》2023-2024学年第二学期期末试卷
- 十堰市郧县2025届五年级数学第二学期期末联考模拟试题含答案
- 山西工商学院《中国文化英语教程》2023-2024学年第一学期期末试卷
- 宁夏石嘴山市名校2025届初三第一次模拟(期末)考试生物试题试卷含解析
- 江西省鹰潭市贵溪市2024-2025学年初三下学期回头考试数学试题含解析
- 2025-2030中国电线电缆行业市场发展分析及前景预测与投资发展战略研究报告
- 下载家长会课件的方法
- 内蒙古自治区部分学校2024-2025学年高三下学期二模地理试题(原卷版+解析版)
- 教研项目合同协议
- JJF 2231-2025感应式磁传感器校准规范
- 云南省昆明地区2025届小升初模拟数学测试卷含解析
- 委托设计框架合同协议
- 风险化学品事故应急预案
- 第3课 中华文明的起源(教学设计)七年级历史上册同步高效课堂(统编版2024)
- 【浙江卷地理试题+答案】浙江省高考科目考试2025年4月绍兴市适应性试卷(绍兴二模)
- 农艺师行业标准与职业道德探讨试题及答案
评论
0/150
提交评论