VBA学习笔记培训资料.doc
《VBA学习笔记培训资料.doc》由会员分享,可在线阅读,更多相关《VBA学习笔记培训资料.doc(52页珍藏版)》请在咨信网上搜索。
1、精品文档 EXCEL之VBA学习笔记 姓名:刘磊 时间:2015年9目录第一章 VBA基础知识3第二章 工作簿以及工作表的操作9第三章:单元格区域操作14第四章:事件程序:36第五章:VBA数组42第一章 VBA基础知识1:代码帮助: F12:代码换行: 下划线+空格+回车3:.常用代码操作excel中的对象 (1)、工作簿(Workbooks) Workbooks(N)第N个工作簿 Workbooks (工作簿名) ActiveWorkbook 活动工作簿 ThisWorkBook 代码所在工作簿 (2)、工作表(Worksheets) Sheets(N) 第N个工作表 Sheets(工作表
2、名) SheetN 第N个工作表 ActiveSheet 活动工作表 worksheets 与 Sheets的区别 (3)、 单元格(cells) Range (单元格地址) Cells(行号,列号) A1单元格简写 Activecell 活动单元格 Selection 当前被选取的区域4:常量与变量 (1.)常量:常量是定义了之后就不做变化了。 常量定义格式:Const 常量名= 常量表达式 (2).变量:在定义之后还能再次赋值 变量定义格式:Dim 变量 As 变量类型5:数据类型 (1.)VBA中的常见数据类型: 类型 注释 简写 占用内存 Integer 整型 % 2Byte Sing
3、le 单精度 ! 4Byte Double 双精度 # 8Byte Long 长整型 & 4Byte String 字符型 $ 定长或变长( 变长字符串最多可包含大约 20 亿 ( 231)个字符。 定长字符串可包含 1 到大约 64K ( 216 ) 个字符。) Currency 货币型 8Byte6:if条件语句 1.单行形式1(If.Then) If 条件判断 Then 条件成立结果 注意 在单行形式中,按照 If.Then 判断的结果也可以执行多条语句。 所有语句必须在同一行上并且以冒号分开?例子:Sub test()If 1 10 Then a = a + 1: b = 1 + a:
4、 c = 1 + bEnd Sub 2. 单行形式1(If 条件判断 Then 条件成立 Else 条件不成立)例子:Sub test2()If 1 1 Then MsgBox yes Else MsgBox noEnd Sub 3.块形式(If.ThenEnd) If 条件判断 Then 条件成立结果 End If例子:Sub test3()If 11 10 Thena = 1 + ab = 1 + ac = 1 + bEnd IfEnd Sub 4.块形式的If嵌套 If 条件判断 Then 成立时的结果 ElseIf 条件判断 Then 成立时的结果 Else 不成立时的结果 End I
5、f例子: Sub 等级判断() If Sheet1.Range(b1) = 90 Then Sheet1.Range(b2) = 优 ElseIf Sheet1.Range(b1) = 80 Then Sheet1.Range(b2) = 良 ElseIf Sheet1.Range(b1) = 70 Then Sheet1.Range(b2) = 中 Else Sheet1.Range(b2) = 差 End If End Sub7:select语句用于判断选择 Select case Case 1 Case 2 . Case else End select8:循环语句 (1):do loop
6、语句 Do . Loop(2):do while loop语句 Do while (条件成立时候循环) Loop(3)do until loop 语句 Do until (直到条件成立) Loop注:while与until不但可以放在DO后面,也可以放在LOOP后面事实上有时在循环的最后一行进行判断,更具有意义。Do While | Until 表达式执行的一条或多条语句Exit Do执行的一条或多条语句Loop-while:当这个条件为True时就 循环until:直到这个条件为True时就 跳出循环-或者可以使用下面这种语法:Do执行的一条或多条语句Exit Do执行的一条或多条语句Loo
7、p While | Until表达式-用DoLoop循环要注意的几点:1. While与Until是放在Do后面还是Loop后面,取决于是先判断再循环,还是先循环再判断。前者则在Do后面,后者则在Loop后面。2. 可以在Do.Loop中的任何位置放置任意个数的 Exit Do 语句,随时跳出 Do.Loop 循环。3. Do.Loop + If.Then + Exit Do 通常结合使用.4. 如果 Exit Do 使用在嵌套的 Do.Loop 语句中,则 Exit Do 会将控制权转移到 Exit Do 所在位置的外层循环。(4):for each next 语句 Eg: Sub fore
8、achnext循环1()Dim rng As Range, n! (range为单元格对象)For Each rng In Sheet1.Range(a2:a10) 取a2:a10中的每个单元格 If rng = A1 Then rng.Interior.ColorIndex = 3NextEnd SubSub foreachnext循环2()Dim wsh As Worksheet, n As Byte, m As String (worksheet为工作表变量)For Each wsh In Worksheets 取当前工作表集合中的每个成员 n = n + 1 Sheet1.Cells(
9、n, 3) = wsh.NameNextEnd Sub9:exit语句与end语句 (1): exit是退出当前语句1.Exit Do2.Exit For 3.Exit Function4.Exit Sub (2):结束一个过程或块 End End Function End If End Select End Sub 注:end 有时候在某些地方的功能和exit for的作用相同。10:跳转语句GoTo line无条件地转移到过程中指定的行。 Gosub return 跳转到某行,而且能够返回。注意太多的 GoTo 语句,会使程序代码不容易阅读及调试。尽可能使用结构化控制语句(Do.Loop、
10、For.Next、If.Then.Else、Select Case)。 For exampleSub gotoreturn()Dim i!For i = 2 To 10 If Sheet1.Range(a & i) 1 / 3 Then GoSub 100Next iExit Sub100: (作为gosub的跳转标示符号) Sheet1.Range(b & i) = 迟到 Return (return语句返回到跳转的地方)End Sub11:对错误语句的处理方法1:On Error Resume Next 当错误的时候继续执行下去方法2:On Error goto 当错误时候去哪儿。12:w
11、ith语句当对某个对象执行一系列的语句时,不用重复指出对象的名称。For example Sub with嵌套1()Range(a1).Value = Who am i ?Range(a1).Parent.Name = Hello WorldRange(a1).Font.Size = 20Range(a1).Font.Bold = TrueEnd Sub Sub with嵌套2()With Range(a1) .Value = Who am i ? .Parent.Name = Hello World With .Font .Size = 20 .Bold = True End WithEnd
12、 WithEnd Sub13:VBA 与公式For example Sub 普通公式()Sheet1.Cells(1, 3) = =a1+b1End SubSub 批量计算()Dim i As IntegerFor i = 1 To 10 Sheet1.Cells(i, 4) = =a & i & +b & iNext iEnd SubSub 数组公式()Range(e1:e10).FormulaArray = =a1:a10+b1:b10 (FormulaArray为数组公式)End SubSub 公式带引号的计算()Cells(12, 1) = =COUNTIF(A1:A10,9) (如果
13、公式当中含有引号,则需要添加双重引号,才能够使公式的输入格式正确)Cells(12, 2) = =sum(INDIRECT(a1:a10)End Sub14:运算符 运算符是代表VBA某种运算功能的符号。 1)赋值运算符 :=2)数学运算符: &(字符连接符)、+(加)、-(减)、Mod(取余)、(整除)、*(乘)、/(除)、-(负号)、(指数) 3)逻辑运算符:Not(非)、And(与)、Or(或)、Xor(异或 相同为0 ,不同为1)、Eqv(相等,相同为1,不同为0)、Imp(隐含)4)关系运算符: = (相同)、(不等)、(大于)、=(不小于)、=(不大于)、Like(判断两个字符串是
14、否相同) ?:代表任何单一字符*:代表零个或多个字符。 charlist :代表charlist.中的任何单一字符? !charlist :代表不在 charlist 中的任何单一字符。 第二章 工作簿以及工作表的操作1:VBA 中工作表与工作簿的表示方法1: workbooks(“工作表的文件名”) Workbooks(“工作表的文件名”).parent 返回工作簿对象的父对象2:工作簿引索号表示法workbooks(数字).name 返回工作表的名称3:窗口表示方法 Windows.count 返回当前excel工作簿打开的个数 Windows(N).parent.Name 返回第N个工作
15、簿的名称注:工作簿索引号的表示法与窗口表示法表示的工作簿的顺序相反。2:当前工作簿与活动工作簿当前工作簿:thisworkbook 代码所在工作簿活动工作簿:activeworkbook 已经激活的工作簿 注:当前工作簿可能是已经激活的工作簿,也可能不是已经激活的工作簿。3:工作簿的基本操作workbooks由当前所有在内存中打开的workbook对象组成的集合(1):.新建工作簿Sub 新建工作簿()Dim wkb As Workbook 声明wkb为工作簿Set wkb = Workbooks.Add 新建工作秒簿wkb.SaveAs c:123.xls 保存为工作簿End Sub(2).
16、打开工作簿Sub 打开工作簿()Dim wkb As WorkbookSet wkb = Workbooks.Open(c:123.xls)End Sub(3).关闭工作簿Sub 关闭()Workbooks(123).Close True (默认为自动保存,不提示)End Sub(4).文件复制与删除Sub 文件复制与删除()FileCopy c:123.txt, c:321.txt (对所有文件类型都起作用)Kill c:321.txtEnd Sub 4:工作薄的应用实例(1) 判断文件是否存在Sub 文件是否存在() a = Dir(c:123.xls) (Dir函数用来取出路径下的目录文
17、件) If a = Then MsgBox 不存在 Else MsgBox 存在 End IfEnd Sub(2) 打开指定目录下的文件 Sub 打开指定目录下的文件()Dim a$, n!, wbs As Workbooka = Dir(c:*.txt)Workbooks.Open c: & aDo a = Dir If a Then Workbooks.Open c: & a Else Exit Sub End IfLoopEnd Sub5:工作簿的表示方法在workbook对象中,有一个SHEETS集合,其成员是worksheet对象或chart对象。worksheets仅指的是工作表,
18、而sheets包含图表,工作表,宏表等等VBA中,经常在工作表之间转换或者对不同工作表中的单元格区域进行操作.通常有下面几种方法:(1):Sub 直接使用工作表名称法()MsgBox Worksheets(我的工作表).NameMsgBox Sheets(我的图表).NameEnd Sub(2)Sub 索引号表示法()MsgBox Worksheets(1).NameEnd Sub(3)Sub 工作表代码索引号表示法()MsgBox Sheets(1).NameEnd Sub(4)Sub 直接取工作代码法()MsgBox Sheet1.NameEnd Sub(5)Sub 活动工作表()MsgB
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VBA 学习 笔记 培训资料
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【人****来】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【人****来】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。