收藏 分享(赏)

VBA超详细总结.doc

上传人:weiwoduzun 文档编号:2730570 上传时间:2018-09-26 格式:DOC 页数:14 大小:51.47KB
下载 相关 举报
VBA超详细总结.doc_第1页
第1页 / 共14页
VBA超详细总结.doc_第2页
第2页 / 共14页
VBA超详细总结.doc_第3页
第3页 / 共14页
VBA超详细总结.doc_第4页
第4页 / 共14页
VBA超详细总结.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、VBA 笔记道具:案例一: 代码:解析:拓展:VBA 前景知识:VBA 所实现的功能简单的说就是通过编写程序,用几个简单操作实现一系列的操作,以达到高效的目的,在做重复的操作时相当有效。在 EXCEL 中,要进入 VBA 编辑界面,首先要调出开发工具选项卡。按快捷键 Alt+F+T 到Excel 选项,在自定义功能区勾选上开发工具并确定。在 Excel 中,宏功能是默认禁用的,因为很多病毒会通过宏传播。在使用之前需要启用该功能。按快捷键 Alt+F+T 到 Excel 选项,在信任中心信任中心设置宏设置启用所有宏确定。VBA 中有对象、方法、属性。理解这些是学习 VBA 的基础。1、 对象:工

2、作簿、工作表、单元格、行、列等2、属性:相应对象的属性。如工作表名称、单元格的行高等属性一般理解为对象拥有的静态特性。3、方法:对相应对象所执行的动作称为对象的方法。如单元格移动、单元格删除内容等。从形状上来区别:前面带绿色图标的就是方法,带手形标志的就是属性。案例一:如何点击按钮实现简单加法运算?代码:Sub 加法运算过程()Cells(1,5)= Cells(1,1)+ Cells(1,3)End sub解析:在开发工具选项卡中插入按钮控件,修改宏名为“加法运算过程 ”,新建,这样就进入 VBA编辑界面。这里的宏简单讲就是编程产生的一系列操作,而点击刚才插入的按钮就可以触发这些操作,这样一

3、个点击操作就可以实现一系列的操作。Ctrl+S 保存,这里下拉菜单中文件保存类型选成“启用宏的工作簿”。因为默认文件类型是默认禁用的,很多病毒会通过宏传播,保存成 xlsx 则丢失代码右击按钮编辑文字修改为“加法” 。这里的加法是按钮显示出来的名称,和宏名不一样。宏是编程产生的一系列操作过程,引用宏名就代表操作这一系列过程。而按钮可以指定不同的宏过程。在开发工具选项卡中宏加法运算过程编辑 进入宏过程编辑界面。输入下面代码。上面代码中,sub 表示宏开始,end sub 表示宏结束, “加法运算过程”是宏名,后面的括号可有可无。宏 macroCells 是 VBA 中最基本的对象,Cells(行

4、号, 列号) 表示引用单元格, Cells(1,1)是指 A1 单元格的内容。拓展:案例二:如何点击按钮实现新建,保存,关闭,打开工作簿?代码:Workbooks.AddActiveWorkbook.SaveAs “C:UsersAdministratorDesktop工作簿 4.xlsx“ActiveWorkbook.CloseWorkbooks.Open Filename:=“C:UsersAdministratorDesktop工作簿 1.xlsx“Workbooks(“工作簿 1.xlsx“).Close解析:拓展:Workbooks.open(“路径”)也可以打开文件案例三:定义函数

5、:(参数可以有多个,用逗号隔开)代码:Function 乘积(a,b)乘积a*bEnd function解析:用函数名调用这个功能,可以在 VBA 中调用,也可以像其它函数一样调用。括号内的参数可以有多个。拓展:系统函数:sqr(a)平方根如要在 VBA 中使用工作表中的函数,用Apication.worksheetfunction.公式名称() 直接调用括号中引用范围时,需要要用 range 等调用,不能用“A1”引用过程分为子过程和函数案例四:函数汇总()代码:(1)Sub 按钮 5_Click()Dim i, j, totalDim w1 As WorksheetFor j = 2 To

6、 Worksheets.Count Set w1 = Worksheets(j)i = 2total = 0Do While w1.Cells(i, 2) “total = total + w1.Cells(j, 2)j = j + 1Loopw1.Cells(2, 3) = totalw2.Cells(i, 1) = w1.Cells(1, 2)w2.Cells(i, 2) = w1.Cells(2, 3)Next i解析:Call 按钮 5_Click 为程序中的注释,只起解释作用,不会运算。去掉时,call+子过程,表示调用这个子过程。Call 是过程调用的关键字,当遇到 call 时,

7、先运行调用的过程,再往下运行。Sub,end sub 即是一个子过程,宏是其小名。过程调用的 call 可以省略,只写出过程名。拓展:案例五:地址拆分代码:Sub 地址拆分()Cells(2, 2) = Left(Cells(1, 2), InStr(Cells(1, 2), “县“) - 1)Cells(3, 2) = Mid(Cells(1, 2), InStr(Cells(1, 2), “县“) + 1, InStr(Cells(1, 2), “路“) - InStr(Cells(1, 2),“县“) - 1)Cells(4, 2) = Mid(Cells(1, 2), InStr(Ce

8、lls(1, 2), “路“) + 1, InStr(Cells(1, 2), “号“) - InStr(Cells(1, 2),“) - 1)End Sub解析:拓展:正则表达示处理字符串更容易案例一: 三重循环汇总代码:解析:拓展:专题一:常用类、对象、属性和方法颜色:vbredRGB(r,g,b)类Application 代表 EXCEL 本身Workbook 工作簿Worksheet 表Range 区域上下为从属关系Cells 引用单元格 是 range 对象的属性相对于 range cells 可以实现循环属性Cells(行数, 列数).valueCells(行数, 列数).font

9、.sizeCells(行数, 列数).font.color=Cells(行数, 列数).font.name 字体大小Cells(行数, 列数).font.fontstyle 字体加粗Cells(行数, 列数).Interior.color 背景颜色Cells(行数, 列数).height 单元格行高(只能在显示中用)Cells(行数, 列数).rowheight 行高(可以进行设置也可以进行 msgbox 显示)with range.font.color=.size=.bold=end with方法Cells(行数, 列数).selectactivecellRange 引用多个单元格区域如:R

10、ange(“A1:A10,A18“),Range(cells(1,1), cells(10,1)属性Range.cellsRange.value 让选定区域的值都为某个数。此属性可以省略,为默认值range.font.size/color/italic/bold/= (bold 为粗体 italic 为斜休(用 ture,false 确定)range. Interior.color 背景颜色range. Interior.colorindex=7 背景颜色方法Range.deleteRange(“A2:D10“).SelectRange(“A2:D10“).copy 目标位置range.cle

11、arrange.clearcontentsrange.clearformats 清除格式range.merge/unmerge 合并/拆分单元格Workbooks 是工作簿集对象用 Workbook(“办公费用“)或 Workbooks(3)引用某个工作表属性Workbooks.count方法Workbooks.add “路径” Workbooks.open(“路径”)Workbooks.Open FileName:=“Array.xls“, ReadOnly:=TrueWorkbooks.close 关闭所有打开的工作簿 关闭所有工作簿Workbooks(“XXX”).close 关闭特定工

12、作簿Workbooks.saveas “路径.扩展名” 保存文件,此处不返回值,所以不用括号Workbooks(1).Activate 激活第一个工作簿workbook 是工作簿文件对象属性Workbook. ActiveSheetWorkbook. AuthorWorkbook.savedWorkbook.nameWorkbook.path方法Workbook.Activate Workbook.CloseWorkbook.SaveWorkbook.SaveAs 另存为Thisworkbook 当前工作簿属性Thisworkbook.nameThisworkbook.path方法Thiswo

13、rkbook.Activeworkbook 活动工作簿属性Activeworkbook.author方法ActiveWorkbook.SaveAs Filename:=“C:UsersAdministratorDesktop工作簿 1.xlsx“Worksheets 当前工作簿所有的工作表用 Worksheet(“XX“)或 Worksheets(3)引用某个工作表属性Worksheets.countWorksheets.name 方法Worksheets.AddWorksheet属性Worksheet.NameWorksheet.Visible方法Worksheet.Calculate 对指

14、定的工作表重新计算Worksheet.CopyWorksheet.Move Worksheet.DeleteSheet1 sheet2ApplicationApplication.cells 表示当前活动表的单元格Application.Quit 退出应用Application.activeworkbook 当前活动的簿Application.activesheet 当前活动的表Apication.worksheetfunction.公式名称() 直接调用括号中引用范围时,需要要用 range 等调用,不能用“A1”引用Application.displayalerts=false 时,则就不

15、会显示,强制覆盖。专题二:顺序、循环、分支 三种结构顺序循环for 循环指定次数。与 do while 相比,for 有内置的计数器(1 )For i=1 to 20 step 1循环体Next i(单个 for 时 i 可不写)(2 )For each a in b (b.count)循环体Next a 如 for each w in workbooks 第一个工作表for each w in range 第一个单元格=for i=1 to b.count循环体Next iWhile 循环(无特定终点 )While 条件循环体 WendDO 循环DO (DO 开关)LOOP(DO 结尾)无限

16、循环,可以在中间用 EXIT DO 终止循环。或者使用 EXIT SUB 结束子过程。有多层循环时,跳出的是内层 do 循环EXIT forExit functionExit sub 可以用于退出第一次End 结束过程或块End for/function/sub/if/select单独用 END 结束当前过程或块Do While 循环(当)Do While 条件循环体Loop其中 do 是循环,while 是条件Do until(直到)Do until 条件循环体LoopWhile 和 until 可以放在 loop 之后,表示先循环再判断。For each a in bDim b as ra

17、ngeFor each b in sheet1.range(“A3:A11”)Next将每个单元格指定给 b,多用于对象的操作分支If 分支If 条件 then计算Else (单个 IF 可不写)计算End if如果 if then 所有内容在一行内,此 if 可以不用 end if 结束ELSEIF 语句If 条件 then循环体Elseif 条件 then计算Elseif 条件 then计算 Else 结果End if从 ABCD 等级从大到小依次循环体,前面满足后面就不会执行。 SELECT 判断语句条件判断,像 if 一样Pad=”888”SELECT CASE PADCASE “88

18、8”MSGBOX “good”Case else (类似 if 中的 else)MSGBOX “bad”END SELECTFor 和 if 配合使用,在一堆中找出一个跳转语句标识:Go to 标识Return(返回到 go to)专题三:程序调试设置断点:在左边灰色区域点击或者 F9。单独执行:F8。CTRL+F8 运行到光标处F5 运行CTRL+BREAK 在光标处中断。调试添加监视:输入要监视的变量,显示变量的数值,而不用动鼠标位置。调试清除所有断点注释REM 注释语句,或语法错误标记为红色专题四:疑问解决录制宏:记录手工,翻译成代码帮助VBA 教程 http:/ 求余连接运算符ALT+

19、F11在工具,选项,编辑器格式中调整字体窗口工程窗口:对象,模块属性窗口编辑窗口 下划线+ 空格+ 回车 实现形式上的换行立即窗口在 VBE 的立即窗口中输入命令,回车后立即运行,大概由此而来为“立即窗口”,试一下,输入:MSGBOX “ExcelHome“回车后弹出一个对话框。用得更多的是在程序调试过程中,把结果输出到立即窗口,检查程序运行结果是否正确,在代码中插入:Debug.Print S运行这一句,会把变量 S 的值输出到立即窗口中。debug.print 的内容在立即窗口中显示本地窗口显示所有的数据插入(可以通过菜单或者工程窗口右键)模块窗体类模块视图:本地窗口:监视变量编辑窗口:监

20、视变量立即窗口自定义工具编辑设置注释,解除注释块专题十:提示框Msgbox a 消息框显示 aInputbox(“提示语”)当保存时会弹出保存替换对话框。如果Application.displayalerts=false 时,则就不会显示,强制覆盖。后面要设置成 ture.专题十一:文本操作关于字符串“”Replace(s,a,b) 在 s 中用 b 替换 a 可以去掉字符串中的空格Trim()去两边空格Lcase 转换成小写ucase 转换成大写,只能在 VBA 中用 以上三个在字符串比较时有用Left(s,a) s 中,左 a 位right(s,b)mid(s,i,a) s 中,从第 i 位开始的 a 位INSTR(i,s,a) 在 s 中从第 i 个字符找 a,返回的是位置值,第一个参数可以省略。Len()字符长度双引号就是字符串的标志特殊的字符可以是空格,换行符,回车符,0 字符的空串等&连接字符串时,前后有空格。变量加&有特殊含义

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 工作总结

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报