为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > VBA学习

VBA学习

2021-04-26 7页 doc 1MB 10阅读

用户头像 个人认证

蓉蓉

暂无简介

举报
VBA学习VBA学习PAGE目录TOC\o"1-3"\h\zHYPERLINK\l"_Toc96498643"一、VBA语言基础PAGEREF_Toc96498643\h1HYPERLINK\l"_Toc96498644"第一节标识符PAGEREF_Toc96498644\h1HYPERLINK\l"_Toc96498645"第二节运算符PAGEREF_Toc96498645\h1HYPERLINK\l"_Toc96498646"第三节数据类型PAGEREF_Toc96498646\h...
VBA学习
VBA学习PAGE目录TOC\o"1-3"\h\zHYPERLINK\l"_Toc96498643"一、VBA语言基础PAGEREF_Toc96498643\h1HYPERLINK\l"_Toc96498644"第一节标识符PAGEREF_Toc96498644\h1HYPERLINK\l"_Toc96498645"第二节运算符PAGEREF_Toc96498645\h1HYPERLINK\l"_Toc96498646"第三节数据类型PAGEREF_Toc96498646\h1HYPERLINK\l"_Toc96498647"第四节变量与常量PAGEREF_Toc96498647\h1HYPERLINK\l"_Toc96498648"第五节数组PAGEREF_Toc96498648\h2HYPERLINK\l"_Toc96498649"第六节注释和赋值语句PAGEREF_Toc96498649\h2HYPERLINK\l"_Toc96498650"第七节PAGEREF_Toc96498650\h2HYPERLINK\l"_Toc96498651"第八节判断语句PAGEREF_Toc96498651\h2HYPERLINK\l"_Toc96498652"第九节循环语句PAGEREF_Toc96498652\h3HYPERLINK\l"_Toc96498653"第十节其他类语句和错误语句处理PAGEREF_Toc96498653\h4HYPERLINK\l"_Toc96498654"第十一节过程和函数PAGEREF_Toc96498654\h5HYPERLINK\l"_Toc96498655"一.Sub过程PAGEREF_Toc96498655\h5HYPERLINK\l"_Toc96498656"二.Function函数PAGEREF_Toc96498656\h5HYPERLINK\l"_Toc96498657"三.Property属性过程和Event事件过程PAGEREF_Toc96498657\h5HYPERLINK\l"_Toc96498658"第十二节内部函数PAGEREF_Toc96498658\h6HYPERLINK\l"_Toc96498659"一.测试函数PAGEREF_Toc96498659\h6HYPERLINK\l"_Toc96498660"二.数学函数PAGEREF_Toc96498660\h6HYPERLINK\l"_Toc96498661"三.字符串函数PAGEREF_Toc96498661\h6HYPERLINK\l"_Toc96498662"四.转换函数PAGEREF_Toc96498662\h6HYPERLINK\l"_Toc96498663"五.时间函数PAGEREF_Toc96498663\h7HYPERLINK\l"_Toc96498664"第十三节文件操作PAGEREF_Toc96498664\h7HYPERLINK\l"_Toc96498665"文件PAGEREF_Toc96498665\h7HYPERLINK\l"_Toc96498666"删除PAGEREF_Toc96498666\h7HYPERLINK\l"_Toc96498667"打开PAGEREF_Toc96498667\h7HYPERLINK\l"_Toc96498668"读入PAGEREF_Toc96498668\h8HYPERLINK\l"_Toc96498669"写入PAGEREF_Toc96498669\h8HYPERLINK\l"_Toc96498670"关闭PAGEREF_Toc96498670\h8HYPERLINK\l"_Toc96498671"其他文件函数PAGEREF_Toc96498671\h8HYPERLINK\l"_Toc96498672"二、VisualBASIC程序设计网络教学PAGEREF_Toc96498672\h8HYPERLINK\l"_Toc96498673"第一课VBA是什么PAGEREF_Toc96498673\h8HYPERLINK\l"_Toc96498674"1.1VBA是什么PAGEREF_Toc96498674\h8HYPERLINK\l"_Toc96498675"1.2EXCEL环境中基于应用程序自动化的优点PAGEREF_Toc96498675\h9HYPERLINK\l"_Toc96498676"1.3录制简单的宏PAGEREF_Toc96498676\h9HYPERLINK\l"_Toc96498677"1.4执行宏PAGEREF_Toc96498677\h10HYPERLINK\l"_Toc96498678"1.5查看录制的代码PAGEREF_Toc96498678\h10HYPERLINK\l"_Toc96498679"1.6编辑录制的代码PAGEREF_Toc96498679\h11HYPERLINK\l"_Toc96498680"1.7录制宏的局限性PAGEREF_Toc96498680\h12HYPERLINK\l"_Toc96498681"1.8小结PAGEREF_Toc96498681\h12HYPERLINK\l"_Toc96498682"第二课处理录制的宏PAGEREF_Toc96498682\h12HYPERLINK\l"_Toc96498683"2.1为宏指定快捷键PAGEREF_Toc96498683\h12HYPERLINK\l"_Toc96498684"2.2决定宏保存的位置PAGEREF_Toc96498684\h13HYPERLINK\l"_Toc96498685"2.3个人宏工作簿PAGEREF_Toc96498685\h13HYPERLINK\l"_Toc96498686"2.3.1保存宏到个人宏工作簿PAGEREF_Toc96498686\h13HYPERLINK\l"_Toc96498687"2.3.2使用并编辑个人宏工作簿中的宏PAGEREF_Toc96498687\h13HYPERLINK\l"_Toc96498688"2.4将宏指定给按钮PAGEREF_Toc96498688\h14HYPERLINK\l"_Toc96498689"2.5将宏指定给图片或其他对象PAGEREF_Toc96498689\h14HYPERLINK\l"_Toc96498690"2.6小结PAGEREF_Toc96498690\h14HYPERLINK\l"_Toc96498691"第三课学习控件PAGEREF_Toc96498691\h15HYPERLINK\l"_Toc96498692"3.1EXCEL开发过程简介PAGEREF_Toc96498692\h15HYPERLINK\l"_Toc96498693"3.2认识不同的控件PAGEREF_Toc96498693\h15HYPERLINK\l"_Toc96498694"3.3向工作添加控件PAGEREF_Toc96498694\h15HYPERLINK\l"_Toc96498695"3.4设置控件的特性PAGEREF_Toc96498695\h16HYPERLINK\l"_Toc96498696"3.5给控件命名PAGEREF_Toc96498696\h16HYPERLINK\l"_Toc96498697"3.6使用用户窗体PAGEREF_Toc96498697\h16HYPERLINK\l"_Toc96498698"3.7疑难解答PAGEREF_Toc96498698\h17HYPERLINK\l"_Toc96498699"第四课理解变量和变量的作用PAGEREF_Toc96498699\h17HYPERLINK\l"_Toc96498700"4.1代码存在的位置:模块PAGEREF_Toc96498700\h17HYPERLINK\l"_Toc96498701"4.2对模块的概览PAGEREF_Toc96498701\h18HYPERLINK\l"_Toc96498702"4.2.1创建过程PAGEREF_Toc96498702\h18HYPERLINK\l"_Toc96498703"4.2.2运行宏PAGEREF_Toc96498703\h19HYPERLINK\l"_Toc96498704"4.3保存对模块所做的改变PAGEREF_Toc96498704\h19HYPERLINK\l"_Toc96498705"4.4变量PAGEREF_Toc96498705\h19HYPERLINK\l"_Toc96498706"4.4.1变量的数据类型PAGEREF_Toc96498706\h20HYPERLINK\l"_Toc96498707"4.4.2用Dim语句创建变量(声明变量)PAGEREF_Toc96498707\h21HYPERLINK\l"_Toc96498708"4.4.3变量命名的惯例PAGEREF_Toc96498708\h21HYPERLINK\l"_Toc96498709"4.4.4使用数组PAGEREF_Toc96498709\h22HYPERLINK\l"_Toc96498710"4.4.5变量赋值PAGEREF_Toc96498710\h23HYPERLINK\l"_Toc96498711"第五课利用VBA设置工作表使用权限PAGEREF_Toc96498711\h23HYPERLINK\l"_Toc96498712"1.使用With语句。PAGEREF_Toc96498712\h25HYPERLINK\l"_Toc96498713"2.使用对象变量。PAGEREF_Toc96498713\h25HYPERLINK\l"_Toc96498714"方法3:减少对象的激活和选择PAGEREF_Toc96498714\h26HYPERLINK\l"_Toc96498715"方法4:关闭屏幕更新PAGEREF_Toc96498715\h26HYPERLINK\l"_Toc96498716"第六课提高Excel中VBA的效率PAGEREF_Toc96498716\h27HYPERLINK\l"_Toc96498717"方法1:尽量使用VBA原有的属性、方法和Worksheet函数PAGEREF_Toc96498717\h27HYPERLINK\l"_Toc96498718"方法2:尽量减少使用对象引用,尤其在循环中PAGEREF_Toc96498718\h28HYPERLINK\l"_Toc96498719"1.使用With语句。PAGEREF_Toc96498719\h28HYPERLINK\l"_Toc96498720"2.使用对象变量。PAGEREF_Toc96498720\h28HYPERLINK\l"_Toc96498721"3.在循环中要尽量减少对象的访问。PAGEREF_Toc96498721\h28HYPERLINK\l"_Toc96498722"方法3:减少对象的激活和选择PAGEREF_Toc96498722\h28HYPERLINK\l"_Toc96498723"方法4:关闭屏幕更新PAGEREF_Toc96498723\h29HYPERLINK\l"_Toc96498724"第七课如何在Excel里使用定时器PAGEREF_Toc96498724\h29HYPERLINK\l"_Toc96498725"三、学习微软Excel2002VBA编程和XML,ASP技术PAGEREF_Toc96498725\h31HYPERLINK\l"_Toc96498726"第一章电子自动化简介和了解宏命令PAGEREF_Toc96498726\h31HYPERLINK\l"_Toc96498727"1了解宏PAGEREF_Toc96498727\h31HYPERLINK\l"_Toc96498728"2宏命令的普通应用PAGEREF_Toc96498728\h31HYPERLINK\l"_Toc96498729"3写宏之前的计划PAGEREF_Toc96498729\h32HYPERLINK\l"_Toc96498730"4录制宏PAGEREF_Toc96498730\h33HYPERLINK\l"_Toc96498731"5运行宏PAGEREF_Toc96498731\h34HYPERLINK\l"_Toc96498732"6修改宏代码PAGEREF_Toc96498732\h35HYPERLINK\l"_Toc96498733"7添加注释PAGEREF_Toc96498733\h38HYPERLINK\l"_Toc96498734"8分析宏代码PAGEREF_Toc96498734\h38HYPERLINK\l"_Toc96498735"9清除宏代码PAGEREF_Toc96498735\h39HYPERLINK\l"_Toc96498736"10测试修改好的宏PAGEREF_Toc96498736\h40HYPERLINK\l"_Toc96498737"11两个层面运行宏的方法PAGEREF_Toc96498737\h40HYPERLINK\l"_Toc96498738"12完善你的宏代码PAGEREF_Toc96498738\h41HYPERLINK\l"_Toc96498739"13重新命名宏PAGEREF_Toc96498739\h43HYPERLINK\l"_Toc96498740"14运行宏的其它方法PAGEREF_Toc96498740\h43HYPERLINK\l"_Toc96498741"15使用键盘快捷键运行宏PAGEREF_Toc96498741\h43HYPERLINK\l"_Toc96498742"16通过菜单运行宏PAGEREF_Toc96498742\h44HYPERLINK\l"_Toc96498743"17通过工具栏按钮运行宏PAGEREF_Toc96498743\h46HYPERLINK\l"_Toc96498744"18通过工作表里面的按钮运行宏PAGEREF_Toc96498744\h47HYPERLINK\l"_Toc96498745"19保存宏PAGEREF_Toc96498745\h48HYPERLINK\l"_Toc96498746"20打印宏PAGEREF_Toc96498746\h48HYPERLINK\l"_Toc96498747"21保存宏在个人宏工作簿PAGEREF_Toc96498747\h48HYPERLINK\l"_Toc96498748"22打开含有宏的工作簿PAGEREF_Toc96498748\h50HYPERLINK\l"_Toc96498749"23VB编辑窗口PAGEREF_Toc96498749\h51HYPERLINK\l"_Toc96498750"24了解工程浏览窗口PAGEREF_Toc96498750\h51HYPERLINK\l"_Toc96498751"25了解属性窗口PAGEREF_Toc96498751\h52HYPERLINK\l"_Toc96498752"26了解代码窗口PAGEREF_Toc96498752\h52HYPERLINK\l"_Toc96498753"27VB编辑器里的其它窗口PAGEREF_Toc96498753\h54HYPERLINK\l"_Toc96498754"28接下来……PAGEREF_Toc96498754\h55HYPERLINK\l"_Toc96498755"第二章VBA第一步PAGEREF_Toc96498755\h55HYPERLINK\l"_Toc96498756"1了解指令,模块和过程PAGEREF_Toc96498756\h55HYPERLINK\l"_Toc96498757"2VBA工程命名PAGEREF_Toc96498757\h55HYPERLINK\l"_Toc96498758"3模块重命名PAGEREF_Toc96498758\h56HYPERLINK\l"_Toc96498759"4从其它工程调用过程PAGEREF_Toc96498759\h57HYPERLINK\l"_Toc96498760"5了解对象,属性和方法PAGEREF_Toc96498760\h58HYPERLINK\l"_Toc96498761"6学习对象,属性和方法PAGEREF_Toc96498761\h59HYPERLINK\l"_Toc96498762"7句法和文法PAGEREF_Toc96498762\h61HYPERLINK\l"_Toc96498763"8打断很长的VBA语句PAGEREF_Toc96498763\h63HYPERLINK\l"_Toc96498764"9了解VBA错误PAGEREF_Toc96498764\h63HYPERLINK\l"_Toc96498765"10查找帮助PAGEREF_Toc96498765\h65HYPERLINK\l"_Toc96498766"11语法和编程快捷助手PAGEREF_Toc96498766\h66HYPERLINK\l"_Toc96498767"12属性/方法列表PAGEREF_Toc96498767\h67HYPERLINK\l"_Toc96498768"13常数列表PAGEREF_Toc96498768\h67HYPERLINK\l"_Toc96498769"14参数信息PAGEREF_Toc96498769\h68HYPERLINK\l"_Toc96498770"15快速信息PAGEREF_Toc96498770\h68HYPERLINK\l"_Toc96498771"16自动完成关键字PAGEREF_Toc96498771\h68HYPERLINK\l"_Toc96498772"17缩进/凸出PAGEREF_Toc96498772\h69HYPERLINK\l"_Toc96498773"18设置注释块/解除注释块PAGEREF_Toc96498773\h69HYPERLINK\l"_Toc96498774"19使用对象浏览器PAGEREF_Toc96498774\h69HYPERLINK\l"_Toc96498775"20使用VBA对象库PAGEREF_Toc96498775\h74HYPERLINK\l"_Toc96498776"21用对象浏览器来定位过程PAGEREF_Toc96498776\h75HYPERLINK\l"_Toc96498777"22使用立即窗口PAGEREF_Toc96498777\h75HYPERLINK\l"_Toc96498778"23获取立即窗口里的信息PAGEREF_Toc96498778\h77HYPERLINK\l"_Toc96498779"24学习对象PAGEREF_Toc96498779\h77HYPERLINK\l"_Toc96498780"25电子表格单元格操作PAGEREF_Toc96498780\h78HYPERLINK\l"_Toc96498781"26使用Range属性PAGEREF_Toc96498781\h78HYPERLINK\l"_Toc96498782"27使用Cells属性PAGEREF_Toc96498782\h78HYPERLINK\l"_Toc96498783"28使用Offset属性PAGEREF_Toc96498783\h79HYPERLINK\l"_Toc96498784"29选择单元格的其它方法PAGEREF_Toc96498784\h80HYPERLINK\l"_Toc96498785"30选择行和列PAGEREF_Toc96498785\h80HYPERLINK\l"_Toc96498786"31获取工作表信息PAGEREF_Toc96498786\h81HYPERLINK\l"_Toc96498787"32往工作表输入数据PAGEREF_Toc96498787\h81HYPERLINK\l"_Toc96498788"33返回工作表中的信息PAGEREF_Toc96498788\h81HYPERLINK\l"_Toc96498789"34单元格格式PAGEREF_Toc96498789\h81HYPERLINK\l"_Toc96498790"35移动,复制和删除单元格PAGEREF_Toc96498790\h82HYPERLINK\l"_Toc96498791"36操作工作簿和工作表PAGEREF_Toc96498791\h82HYPERLINK\l"_Toc96498792"37操作窗口(Windows)PAGEREF_Toc96498792\h83HYPERLINK\l"_Toc96498793"38管理Excel应用程序PAGEREF_Toc96498793\h84HYPERLINK\l"_Toc96498794"39接下来……PAGEREF_Toc96498794\h84HYPERLINK\l"_Toc96498795"第三章了解变量,数据类型和常量PAGEREF_Toc96498795\h84HYPERLINK\l"_Toc96498796"1保存VBA语句的结果PAGEREF_Toc96498796\h85HYPERLINK\l"_Toc96498797"2变量是什么PAGEREF_Toc96498797\h85HYPERLINK\l"_Toc96498798"3数据类型PAGEREF_Toc96498798\h85HYPERLINK\l"_Toc96498799"4如何产生变量PAGEREF_Toc96498799\h86HYPERLINK\l"_Toc96498800"5如何声明变量PAGEREF_Toc96498800\h86HYPERLINK\l"_Toc96498801"6明确变量的数据类型PAGEREF_Toc96498801\h88HYPERLINK\l"_Toc96498802"7变量赋值PAGEREF_Toc96498802\h89HYPERLINK\l"_Toc96498803"8强制声明变量PAGEREF_Toc96498803\h91HYPERLINK\l"_Toc96498804"9了解变量范围PAGEREF_Toc96498804\h92HYPERLINK\l"_Toc96498805"10过程级别(当地)变量PAGEREF_Toc96498805\h92HYPERLINK\l"_Toc96498806"11模块级别变量PAGEREF_Toc96498806\h92HYPERLINK\l"_Toc96498807"12工程级别变量PAGEREF_Toc96498807\h93HYPERLINK\l"_Toc96498808"13变量的存活期PAGEREF_Toc96498808\h94HYPERLINK\l"_Toc96498809"14了解和使用静态变量PAGEREF_Toc96498809\h94HYPERLINK\l"_Toc96498810"15声明和使用对象变量PAGEREF_Toc96498810\h95HYPERLINK\l"_Toc96498811"16使用明确的对象变量PAGEREF_Toc96498811\h95HYPERLINK\l"_Toc96498812"17查找变量定义PAGEREF_Toc96498812\h96HYPERLINK\l"_Toc96498813"18在VB过程里面使用常量PAGEREF_Toc96498813\h96HYPERLINK\l"_Toc96498814"19内置常量PAGEREF_Toc96498814\h96HYPERLINK\l"_Toc96498815"20接下来……PAGEREF_Toc96498815\h97HYPERLINK\l"_Toc96498816"第四章VBA过程:子程序和函数PAGEREF_Toc96498816\h98HYPERLINK\l"_Toc96498817"1.关于函数过程PAGEREF_Toc96498817\h98HYPERLINK\l"_Toc96498818"2.创建函数过程PAGEREF_Toc96498818\h98HYPERLINK\l"_Toc96498819"3.执行函数过程PAGEREF_Toc96498819\h100HYPERLINK\l"_Toc96498820"4.从工作表里运行函数过程PAGEREF_Toc96498820\h100HYPERLINK\l"_Toc96498821"5.从另外一个VBA过程里运行函数过程PAGEREF_Toc96498821\h102HYPERLINK\l"_Toc96498822"6.传递参数PAGEREF_Toc96498822\h102HYPERLINK\l"_Toc96498823"7.明确参数类型PAGEREF_Toc96498823\h103HYPERLINK\l"_Toc96498824"8.按地址和按值传递参数PAGEREF_Toc96498824\h104HYPERLINK\l"_Toc96498825"9.使用可选的参数PAGEREF_Toc96498825\h105HYPERLINK\l"_Toc96498826"10.定位内置函数PAGEREF_Toc96498826\h106HYPERLINK\l"_Toc96498827"11.使用MsgBox函数PAGEREF_Toc96498827\h107HYPERLINK\l"_Toc96498828"12.MsgBox函数的运行值PAGEREF_Toc96498828\h111HYPERLINK\l"_Toc96498829"13.使用InputBox函数PAGEREF_Toc96498829\h111HYPERLINK\l"_Toc96498830"14.数据类型转变PAGEREF_Toc96498830\h113HYPERLINK\l"_Toc96498831"15.使用InputBox方法PAGEREF_Toc96498831\h114HYPERLINK\l"_Toc96498832"16.使用主过程和子过程PAGEREF_Toc96498832\h116HYPERLINK\l"_Toc96498833"17.接下来……PAGEREF_Toc96498833\h118HYPERLINK\l"_Toc96498834"第五章基于VBA做决定PAGEREF_Toc96498834\h118HYPERLINK\l"_Toc96498835"1.关系和逻辑运算符PAGEREF_Toc96498835\h119HYPERLINK\l"_Toc96498836"2.If…Then语句PAGEREF_Toc96498836\h119HYPERLINK\l"_Toc96498837"3.基于多于一个条件的决定PAGEREF_Toc96498837\h121HYPERLINK\l"_Toc96498838"4.TheIf…Then…Else语句PAGEREF_Toc96498838\h122HYPERLINK\l"_Toc96498839"5.If…Then…ElseIf语句PAGEREF_Toc96498839\h125HYPERLINK\l"_Toc96498840"6.嵌套的If…Then语句PAGEREF_Toc96498840\h126HYPERLINK\l"_Toc96498841"7.SelectCase语句PAGEREF_Toc96498841\h127HYPERLINK\l"_Toc96498842"8.和Case子句一起使用IsPAGEREF_Toc96498842\h128HYPERLINK\l"_Toc96498843"9.确定Case子句里数值的范围PAGEREF_Toc96498843\h129HYPERLINK\l"_Toc96498844"10.在Case子句里确定多个表达式PAGEREF_Toc96498844\h130HYPERLINK\l"_Toc96498845"11.接下来…PAGEREF_Toc96498845\h130HYPERLINK\l"_Toc96498846"第六章在VBA中重复操作PAGEREF_Toc96498846\h130HYPERLINK\l"_Toc96498847"1.DoLoops:Do…While和Do…UntilPAGEREF_Toc96498847\h130HYPERLINK\l"_Toc96498848"2.观察过程执行PAGEREF_Toc96498848\h133HYPERLINK\l"_Toc96498849"3.While…Wend循环PAGEREF_Toc96498849\h134HYPERLINK\l"_Toc96498850"4.For…Next循环PAGEREF_Toc96498850\h135HYPERLINK\l"_Toc96498851"5.ForEach…Next循环PAGEREF_Toc96498851\h136HYPERLINK\l"_Toc96498852"7.提前跳出循环PAGEREF_Toc96498852\h137HYPERLINK\l"_Toc96498853"8.循环嵌套PAGEREF_Toc96498853\h138HYPERLINK\l"_Toc96498854"9.接下来…PAGEREF_Toc96498854\h138VBA语言基础橄榄树整理PAGE129一、VBA语言基础ZhouJibin2004-11-30第一节标识符一.定义标识符是一种标识变量、常量、过程、函数、类等语言构成单位的符号,利用它可以完成对变量、常量、过程、函数、类等的引用。二.命名字母打头,由字母、数字和下划线组成,如A987b_23Abc字符长度小于40,(Excel2002以上中文版等,可以用汉字且长度可达254个字符)不能与VB保留字重名,如public,private,dim,goto,next,with,integer,single等第二节运算符定义:运算符是代表VB某种运算功能的符号。1)赋值运算符=2)数学运算符&、+(字符连接符)、+(加)、-(减)、Mod(取余)、\(整除)、*(乘)、/(除)、-(负号)、^(指数)3)逻辑运算符Not(非)、And(与)、Or(或)、Xor(异或)、Eqv(相等)、Imp(隐含)4)关系运算符=(相同)、<>(不等)、>(大于)、<(小于)、>=(不小于)、<=(不大于)、Like、Is5)位运算符Not(逻辑非)、And(逻辑与)、Or(逻辑或)、Xor(逻辑异或)、Eqv(逻辑等)、Imp(隐含)第三节数据类型VBA共有12种数据类型,具体见下表,此外用户还可以根据以下类型用Type自定义数据类型。数据类型类型标识符字节字符串型String$字符长度(0-65400)字节型Byte无1布尔型Boolean无2整数型Integer%2长整数型Long&4单精度型Single!4双精度型Double#8日期型Date无8公元100/1/1-99/12/31货币型Currency@8小数点型Decimal无14变体型Variant无以上任意类型,可变对象型Object无4第四节变量与常量1)VBA允许使用未定义的变量,默认是变体变量。2)在模块通用说明部份,加入OptionExplicit语句可以强迫用户进行变量定义。3)变量定义语句及变量作用域Dim变量as类型'定义为局部变量,如DimxyzasintegerPrivate变量as类型'定义为私有变量,如PrivatexyzasbytePublic变量as类型'定义为公有变量,如PublicxyzassingleGlobal变量as类型'定义为全局变量,如GloblalxyzasdateStatic变量as类型'定义为静态变量,如Staticxyzasdouble一般变量作用域的原则是,那部份定义就在那部份起作用,模块中定义则在该模块那作用。4)常量为变量的一种特例,用Const定义,且定义时赋值,程序中不能改变值,作用域也如同变量作用域。如下定义:ConstPi=3.1415926assingle第五节数组数组是包含相同数据类型的一组变量的集合,对数组中的单个变量引用通过数组索引下标进行。在内存中表现为一个连续的内存块,必须用Global或Dim语句来定义。定义规则如下:Dim数组名([lowerto]upper[,[lowerto]upper,….])astype;Lower缺省值为0。二维数组是按行列排列,如XYZ(行,列)。除了以上固定数组外,VBA还有一种功能强大的动态数组,定义时无大小维数声明;在程序中再利用Redim语句来重新改变数组大小,原来数组内容可以通过加preserve关键字来保留。如下例:Dimarray1()asdouble:Redimarray1(5):array1(3)=250:Redimpreservearray1(5,10)第六节注释和赋值语句1)注释语句是用来说明程序中某些语句的功能和作用;VBA中有两种方法标识为注释语句。单引号’;如:’定义全局变量;可以位于别的语句之尾,也可单独一行Rem;如:Rem定义全局变量;只能单独一行2)赋值语句是进行对变量或对象属性赋值的语句,采用赋值号=,如X=123:Form1.caption=”我的窗口”对对象的赋值采用:setmyobject=object或myobject:=object第七节书写规范1)VBA不区分标识符的字母大小写,一律认为是小写字母;2)一行可以书写多条语句,各语句之间以冒号:分开;3)一条语句可以多行书写,以空格加下划线_来标识下行为续行;4)标识符最好能简洁明了,不造成歧义。第八节判断语句1)If…Then…Else语句IfconditionThen[statements][Elseelsestatements]如1:IfA>BAndC250Thenx=x-100或者,可以使用块形式的语法:IfconditionThen[statements][ElseIfcondition-nThen[elseifstatements]...[Else[elsestatements]]EndIf如1:IfNumber<10ThenDigits=1ElseIfNumber<100ThenDigits=2ElseDigits=3EndIf2)SelectCase…Case…EndCase语句如1:SelectCasePidCase“A101”Price=200Case“A102”Price=300……CaseElsePrice=900EndCase3)Choose函数choose(index,choce-1,choice-2,…,choice-n),可以用来选择自变量串列中的一个值,并将其返回,index必要参数,数值表达式或字段,它的运算结果是一个数值,且界于1和可选择的项目数之间。choice必要参数,Variant表达式,包含可选择项目的其中之一。如:GetChoice=Choose(Ind,"Speedy","United","Federal")4)Switch函数Switch(expr-1,value-1[,expr-2,value-2_[,expr-n,value-n]])switch函数和Choose函数类似,但它是以两个一组的方式返回所要的值,在串列中,最先为TRUE的值会被返回。expr必要参数,要加以计算的Variant表达式。value必要参数。如果相关的表达式为True,则返回此部分的数值或表达式,没有一个表达式为True,Switch会返回一个Null值。第九节循环语句1)ForNext语句以指定次数来重复执行一组语句Forcounter=startToend[Stepstep]'step缺省值为1[statements][ExitFor][statements]Next[counter]如1:ForWords=10To1Step-1'建立10次循环ForChars=0To9'建立10次循环MyString=MyString&Chars'将数字添加到字符串中NextChars'IncrementcounterMyString=MyString&""'添加一个空格NextWords2)ForEach…Next语句主要功能是对一个数组或集合对象进行,让所有元素重复执行一次语句ForEachelementIngroupStatements[Exitfor]StatementsNext[element]如1:ForEachrang2Inrange1Withrange2.interior.colorindex=6.pattern=xlSolidEndwithNext这上面一例中用到了With…EndWith语句,目的是省去对象多次调用,加快速度;语法为:Withobject[statements]EndWith3)Do…loop语句在条件为true时,重复执行区块命令Do{while|until}condition'while为当型循环,until为直到型循环,顾名思义,不多说啦StatementsExitdoStatementsLoop或者使用下面语法Do'先do再判断,即不论如何先干一次再说StatementsExitdoStatementsLoop{while|until}condition第十节其他类语句和错误语句处理一.其他循环语句结构化程序使用以上判断和循环语句已经足够,建议不要轻易使用下面的语句,虽然VBA还支持。Gotoline该语句为跳转到line语句行Onexpressiongosubdestinatioinlist或者onexpressiongotodestinationlist语句为根据exprssion表达式值来跳转到所要的行号或行标记Gosubline…line…Return语句,Return返回到Gosubline行,如下例:Subgosubtry()DimnumNum=inputbox(“输入一个数字,此值将会被判断循环”)Ifnum>0thenGosubRoutine1:Debug.printnum:ExitsubRoutine1:Num=num/5ReturnEndsubwhile…wend语句,只要条件为TRUE,循环就执行,这是以前VB老语法保留下来的,如下例:whilecondition‘whileI<50[statements]‘I=I+1wend‘Wend二.错误语句处理执行阶段有时会有错误的情况发生,利用OnError语句来处理错误,启动一个错误的处理程序。语法如下:OnErrorGotoLine‘当错误发生时,会立刻转移到line行去OnErrorResumeNext‘当错误发生时,会立刻转移到发生错误的下一行去OnErroGoto0‘当错误发生时,会立刻停止过程中任何错误处理过程第十一节过程和函数过程是构成程序的一个模块,往往用来完成一个相对独立的功能。过程可以使程序更清晰、更具结构性。VBA具有四种过程:Sub过程、Function函数、Property属性过程和Event事件过程。一.Sub过程Sub过程的参数有两种传递方式:按值传递(ByVal)和按地址传递(ByRef)。如下例:Subpassword(ByValxasinteger,ByRefyasinteger)Ify=100theny=x+yelsey=x-yx=x+100EndsubSubcall_password()Dimx1asintegerDimy1asintegerx1=12y1=100Callpassword(x1,y1)‘调用过程方式:1.Call过程名(参数1,参数2…);2.过程名参数1,参数2…debug.printx1,y1‘结果是12、112,y1按地址传递改变了值,而x1按值传递,未改变原值Endsub二.Function函数函数实际是实现一种映射,它通过一定的映射规则,完成运算并返回结果。参数传递也两种:按值传递(ByVal)和按地址传递(ByRef)。如下例:Functionpassword(ByValxasinteger,byrefyasinteger)asbooleanIfy=100theny=x+yelsey=x-yx=x+100ify=150thenpassword=trueelsepassword=falseEndFunctionSubcall_password()Dimx1asintegerDimy1asintegerx1=12y1=100ifpasswordthen‘调用函数:1.作为一个表达式放在=右端;2.作为参数使用debug.printx1endifEndsub三.Property属性过程和Event事件过程这是VB在对象功能上添加的两个过程,与对象特征密切相关,也是VBA比较重要组成,技术比较复杂,可以参考相关书籍。第十二节内部函数在VBA程序语言中有许多内置函数,可以帮助程序代码设计和减少代码的编写工作。一.测试函数IsNumeric(x)‘是否为数字,返回Boolean结果,TrueorFalseIsDate(x)‘是否是日期,返回Boolean结果,TrueorFalseIsEmpty(x)‘是否为Empty,返回Boolean结果,TrueorFalseIsArray(x)‘指出变量是否为一个数组。IsError(expression)‘指出表达式是否为一个错误值IsNull(expression)‘指出表达式是否不包含任何有效数据(Null)。IsObject(identifier)‘指出标识符是否表示对象变量二.数学函数Sin(X)、Cos(X)、Tan(X)、Atan(x)三角函数,单位为弧度Log(x)返回x的自然对数Exp(x)返回exAbs(x)返回绝对值Int(number)、Fix(number)都返回参数的整数部分,区别:Int将-8.4转换成-9,而Fix将-8.4转换成-8Sgn(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)转换为大写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),包含具有具体时
/
本文档为【VBA学习】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索