VBA超详细总结.doc

上传人:jian****018 文档编号:10186157 上传时间:2020-04-10 格式:DOC 页数:14 大小:51.47KB
返回 下载 相关 举报
VBA超详细总结.doc_第1页
第1页 / 共14页
VBA超详细总结.doc_第2页
第2页 / 共14页
VBA超详细总结.doc_第3页
第3页 / 共14页
点击查看更多>>
资源描述
VBA笔记道具:案例一: 代码:解析:拓展:VBA前景知识:VBA所实现的功能简单的说就是通过编写程序,用几个简单操作实现一系列的操作,以达到高效的目的,在做重复的操作时相当有效。在EXCEL中,要进入VBA编辑界面,首先要调出开发工具选项卡。按快捷键Alt+F+T到Excel选项,在自定义功能区勾选上开发工具并确定。在Excel中,宏功能是默认禁用的,因为很多病毒会通过宏传播。在使用之前需要启用该功能。按快捷键Alt+F+T到Excel选项,在信任中心信任中心设置宏设置启用所有宏确定。VBA中有对象、方法、属性。理解这些是学习VBA的基础。1、 对象:工作簿、工作表、单元格、行、列等2、属性:相应对象的属性。如工作表名称、单元格的行高等属性一般理解为对象拥有的静态特性。3、方法:对相应对象所执行的动作称为对象的方法。如单元格移动、单元格删除内容等。从形状上来区别:前面带绿色图标的就是方法,带手形标志的就是属性。案例一:如何点击按钮实现简单加法运算?代码:Sub 加法运算过程()Cells(1,5)= Cells(1,1)+ Cells(1,3)End sub解析:在开发工具选项卡中插入按钮控件,修改宏名为“加法运算过程”,新建,这样就进入VBA编辑界面。这里的宏简单讲就是编程产生的一系列操作,而点击刚才插入的按钮就可以触发这些操作,这样一个点击操作就可以实现一系列的操作。Ctrl+S保存,这里下拉菜单中文件保存类型选成“启用宏的工作簿”。因为默认文件类型是默认禁用的,很多病毒会通过宏传播,保存成xlsx则丢失代码右击按钮编辑文字修改为“加法”。这里的加法是按钮显示出来的名称,和宏名不一样。宏是编程产生的一系列操作过程,引用宏名就代表操作这一系列过程。而按钮可以指定不同的宏过程。在开发工具选项卡中宏加法运算过程编辑 进入宏过程编辑界面。输入下面代码。上面代码中,sub表示宏开始,end sub 表示宏结束,“加法运算过程”是宏名,后面的括号可有可无。宏macroCells是VBA中最基本的对象,Cells(行号,列号)表示引用单元格, Cells(1,1)是指A1单元格的内容。拓展:案例二:如何点击按钮实现新建,保存,关闭,打开工作簿?代码: Workbooks.Add ActiveWorkbook.SaveAs C:UsersAdministratorDesktop工作簿4.xlsxActiveWorkbook.CloseWorkbooks.Open Filename:=C:UsersAdministratorDesktop工作簿1.xlsxWorkbooks(工作簿1.xlsx).Close解析:拓展:Workbooks.open(“路径”)也可以打开文件案例三:定义函数:(参数可以有多个,用逗号隔开)代码:Function 乘积(a,b)乘积a*bEnd function解析:用函数名调用这个功能,可以在VBA中调用,也可以像其它函数一样调用。括号内的参数可以有多个。拓展:系统函数:sqr(a)平方根如要在VBA中使用工作表中的函数,用Apication.worksheetfunction.公式名称() 直接调用括号中引用范围时,需要要用range等调用,不能用“A1”引用过程分为子过程和函数案例四:函数汇总()代码:(1)Sub 按钮5_Click() Dim i, j, total Dim w1 As Worksheet For j = 2 To Worksheets.Count Set w1 = Worksheets(j) i = 2 total = 0 Do While w1.Cells(i, 2) total = total + w1.Cells(i, 2) i = i + 1 Loop w1.Cells(2, 3) = total Next jEnd Sub(2)Sub 按钮6_Click() Call 按钮5_Click Dim i Dim w1 As Worksheet, w2 As Worksheet Set w2 = Worksheets(1) For i = 2 To Worksheets.Count Set w1 = Worksheets(i) w2.Cells(i, 1) = w1.Cells(1, 2) w2.Cells(i, 2) = w1.Cells(2, 3) Next iEnd Sub(3)Sub 按钮7_Click() Dim i, j, total Dim w1 As Worksheet, w2 As Worksheet Set w2 = Worksheets(1) For i = 2 To Worksheets.Count Set w1 = Worksheets(i) i循环工作表 j = 2 j循环成绩 total = 0 Do While w1.Cells(j, 2) total = total + w1.Cells(j, 2) j = j + 1 Loop w1.Cells(2, 3) = total w2.Cells(i, 1) = w1.Cells(1, 2) w2.Cells(i, 2) = w1.Cells(2, 3) Next i解析:Call 按钮5_Click 为程序中的注释,只起解释作用,不会运算。去掉时,call+子过程,表示调用这个子过程。Call是过程调用的关键字,当遇到call时,先运行调用的过程,再往下运行。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(Cells(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.sizeCells(行数,列数).font.color=Cells(行数,列数).font.name字体大小Cells(行数,列数).font.fontstyle字体加粗Cells(行数,列数).Interior.color背景颜色Cells(行数,列数).height单元格行高(只能在显示中用)Cells(行数,列数).rowheight行高(可以进行设置也可以进行msgbox显示)withrange.font.color=.size=.bold=end with方法Cells(行数,列数).selectactivecellRange引用多个单元格区域如:Range(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.clearrange.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 关闭特定工作簿Workbooks.saveas “路径.扩展名” 保存文件,此处不返回值,所以不用括号Workbooks(1).Activate 激活第一个工作簿workbook是工作簿文件对象属性Workbook. ActiveSheetWorkbook. AuthorWorkbook.savedWorkbook.nameWorkbook.path方法Workbook.Activate Workbook.CloseWorkbook.SaveWorkbook.SaveAs另存为Thisworkbook当前工作簿属性Thisworkbook.nameThisworkbook.path方法Thisworkbook.Activeworkbook活动工作簿属性Activeworkbook.author方法ActiveWorkbook.SaveAs Filename:=C:UsersAdministratorDesktop工作簿1.xlsxWorksheets当前工作簿所有的工作表用Worksheet(XX)或 Worksheets(3)引用某个工作表属性Worksheets.countWorksheets.name 方法Worksheets.AddWorksheet属性Worksheet.NameWorksheet.Visible方法Worksheet.Calculate对指定的工作表重新计算Worksheet.CopyWorksheet.Move Worksheet.DeleteSheet1sheet2ApplicationApplication.cells 表示当前活动表的单元格Application.Quit退出应用Application.activeworkbook当前活动的簿Application.activesheet当前活动的表Apication.worksheetfunction.公式名称() 直接调用括号中引用范围时,需要要用range等调用,不能用“A1”引用Application.displayalerts=false时,则就不会显示,强制覆盖。专题二:顺序、循环、分支 三种结构顺序循环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结尾)无限循环,可以在中间用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 rangeFor 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 “888”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:/www.feiesoft.com/vba/专题五:运算符算术运算符+-*/求幂整除Mod求余连接运算符&+针对字符(&两边要加空格)逻辑运算符and or not(符号两边的表达式都要完整,不能省) 优先级not andor 返回true/false运算符两边的表达式要完整才行关系/比较运算符= 专题六:命名规则option explicit强制声明dim a,b,c定义变量const pi=3.14 定义常量dim w1 as worksheet/workbook/rangeset w2=worksheets.add给对象赋值要在前面加set新建保存文件:Set wb=workbooks.addWb.saveas “路径”wb.close大小写相同尽量用英文不超过256反映变量意义不能是系统已用的名字。如sub,end,if ,for,while,分为常量和变量不能以数字开头专题七:快捷键工程资源管理器:CTRL+R属性窗口:F4专题八:数据类型数据类型中文占用空间缩写Byte字节1字节 0-255dim a as byte (a 只能是0-255的数字)例:Dim a as byte/dim a%超过范围将溢出类型占用符号范围Boolean布尔2字节true或falseInteger整数2字节%Long长整型4&Single单精4!Double双精8#string字符串定或变$Currency货币型8变体变量DateString字符串长度$Dim a as string 不定长Dim a as string*3 定长Object对象VariantEmpty 空专题九:VBE编辑器窗口开发工具+VB;ALT+F11在工具,选项,编辑器格式中调整字体窗口工程窗口:对象,模块属性窗口编辑窗口 下划线+空格+回车 实现形式上的换行立即窗口在VBE的立即窗口中输入命令,回车后立即运行,大概由此而来为“立即窗口”,试一下,输入:MSGBOX ExcelHome回车后弹出一个对话框。用得更多的是在程序调试过程中,把结果输出到立即窗口,检查程序运行结果是否正确,在代码中插入:Debug.Print S运行这一句,会把变量S的值输出到立即窗口中。debug.print 的内容在立即窗口中显示本地窗口显示所有的数据插入(可以通过菜单或者工程窗口右键)模块窗体类模块视图:本地窗口:监视变量编辑窗口:监视变量立即窗口自定义工具编辑设置注释,解除注释块专题十:提示框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字符的空串等&连接字符串时,前后有空格。变量加&有特殊含义
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!