VBA超详细总结

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

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)Endsub解析:在开发工具选项卡中插入按钮控件,修改宏名为“加法运算过程”,新建,这样就进入VBA编辑界面。这里的宏简单讲就是编程产生的一系列操作,而点击刚才插入的按钮就可以触发这些操作,这样一个点击操作就可以实现一系列的操作。Ctrl+S保存,这里下拉菜单中文件保存类型选成“启用宏的工作簿”。因为默认文件类型是默认禁用的,很多病毒会通过宏传播,保存成xlsx则丢失代码右击按钮→编辑文字→修改为“加法”。这里的加法是按钮显示出来的名称,和宏名不一样。宏是编程产生的一系列操作过程,引用宏名就代表操作这一系列过程。而按钮可以指定不同的宏过程。在开发工具选项卡中→宏→加法运算过程→编辑进入宏过程编辑界面。输入下面代码。上面代码中,sub表示宏开始,endsub表示宏结束,“加法运算过程”是宏名,后面的括号可有可无。宏macroCells是VBA中最基本的对象,Cells(行号,列号)表示引用单元格,Cells(1,1)是指A1单元格的内容。拓展:案例二:如何点击按钮实现新建,保存,关闭,打开工作簿?代码:Workbooks.AddActiveWorkbook.SaveAsC:\Users\Administrator\Desktop\工作簿4.xlsxActiveWorkbook.CloseWorkbooks.OpenFilename:=C:\Users\Administrator\Desktop\工作簿1.xlsxWorkbooks(工作簿1.xlsx).Close解析:拓展:Workbooks.open(“路径”)也可以打开文件案例三:定义函数:(参数可以有多个,用逗号隔开)代码:Function乘积(a,b)乘积=a*bEndfunction解析:用函数名调用这个功能,可以在VBA中调用,也可以像其它函数一样调用。括号内的参数可以有多个。拓展:系统函数:sqr(a)平方根如要在VBA中使用工作表中的函数,用Apication.worksheetfunction.公式名称()直接调用括号中引用范围时,需要要用range等调用,不能用“A1”引用过程分为子过程和函数案例四:函数汇总()代码:(1)Sub按钮5_Click()Dimi,j,totalDimw1AsWorksheetForj=2ToWorksheets.CountSetw1=Worksheets(j)i=2total=0DoWhilew1.Cells(i,2)total=total+w1.Cells(i,2)i=i+1Loopw1.Cells(2,3)=totalNextjEndSub(2)Sub按钮6_Click()'Call按钮5_ClickDimiDimw1AsWorksheet,w2AsWorksheetSetw2=Worksheets(1)Fori=2ToWorksheets.CountSetw1=Worksheets(i)w2.Cells(i,1)=w1.Cells(1,2)w2.Cells(i,2)=w1.Cells(2,3)NextiEndSub(3)Sub按钮7_Click()Dimi,j,totalDimw1AsWorksheet,w2AsWorksheetSetw2=Worksheets(1)Fori=2ToWorksheets.CountSetw1=Worksheets(i)'i循环工作表j=2'j循环成绩total=0DoWhilew1.Cells(j,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)Nexti解析:'Call按钮5_Click‘为程序中的注释,只起解释作用,不会运算。去掉’时,call+子过程,表示调用这个子过程。Call是过程调用的关键字,当遇到call时,先运行调用的过程,再往下运行。Sub,endsub即是一个子过程,宏是其小名。过程调用的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)EndSub解析:拓展:正则表达示处理字符串更容易案例一:三重循环汇总代码:解析:拓展:专题一:常用类、对象、属性和方法颜色:vbredRGB(r,g,b)类Application代表EXCEL本身Workbook工作簿Worksheet表Range区域上下为从属关系Cells引用单元格是range对象的属性相对于rangecells可以实现循环属性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=endwith方法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.OpenFileName:=Array.xls,ReadOnly:=TrueWorkbooks.close关闭所有打开的工作簿关闭所有工作簿Workbooks(“XXX”).close关闭特定工作簿Workbooks.saveas“路径.扩展名”保存文件,此处不返回值,所以不用括号Workbooks(1).Activate激活第一个工作簿workbook是工作簿文件对象属性Workbook.ActiveSheetWorkbook.AuthorWorkbook.savedWorkbook.nameWorkbook.path方法Workbook.ActivateWorkbook.CloseWorkbook.SaveWorkbook.SaveAs另存为Thisworkbook当前工作簿属性Thisworkbook.nameThisworkbook.path方法Thisworkbook.Activeworkbook活动工作簿属性Activeworkbook.author方法ActiveWorkbook.SaveAsFilename:=C:\Users\Administrator\Desktop\工作簿1.xlsxWorksheets当前工作簿所有的工作表用Worksheet(XX)或Worksheets(3)引用某个工作表属性Worksheets.countWorksheets.name方法Worksheets.AddWorksheet属性Worksheet.NameWorksheet.Visible方法Worksheet.Calculate对指定的工作表重新计算Worksheet.CopyWorksheet.MoveWorksheet.DeleteSheet1sheet2ApplicationApplication.cells表示当前活动表的单元格Application.Quit退出应用Application.activeworkbook当前活动的簿Application.activesheet当前活动的表Apication.worksheetfunction.公式名称()直接调用括号中引用范围时,需要要用range等调用,不能用“A1”引用Application.displayalerts=false时,则就不会显示,强制覆盖。专题二:顺序、循环、分支三种结构顺序循环for循环指定次数。与dowhile相比,for有内置的计数器(1)Fori=1to20step1循环体Nexti(单个for时i可不写)(2)Foreachainb(b.count)循环体Nexta如foreachwinworkbooks第一个工作表foreachwinrange第一个单元格=fori=1tob.count循环体NextiWhile循环(无特定终点)While条件循环体WendDO循环DO(DO开关)LOOP(DO结尾)无限循环,可以在中间用EXITDO终止循环。或者使用EXITSUB结束子过程。有多层循环时,跳出的是内层do循环EXITforExitfunctionExitsub可以用于退出第一次End结束过程或块Endfor/function/sub/if/select单独用END结束当前过程或块DoWhile循环(当)DoWhile条件循环体Loop其中do是循环,while是条件Dountil(直到)Dountil条件循环体LoopWhile和until可以放在loop之后,表示先循环再判断。ForeachainbDimbasrangeForeachbinsheet1.range(“A3:A11”)Next将每个单元格指定给b,多用于对象的操作分支If分支If条件then计算Else(单个IF可不写)计算Endif如果ifthen所有内容在一行内,此if

1 / 14
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功