- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ExcelVBA技巧.
第一篇 Excel VBA基础第一章 Excel?VBA?基础知识技巧1、录制宏并获取有效的代码使用宏录制器是获取Excel VBA代码最简单的方式,尤其是对于没有任何编程经验的VBA学习者。例如希望在VBA中使用的Excel的“高级筛选”功能从图1-1所示的Database工作表的数据表中获得在图1-2所示的Result工作表内指定的日期范围内的数据,并将数据复制到以单元格B5开始的单元格区域。其中“宏名”文本框显示为默认的名称“Macro1”,建议修改为有意义的名称,在“快捷键”文本框中输入的字母将作为运行宏的组合键即Ctrl+Shift+字母。在“保存在”下拉列表扣列出了保存录制宏的3个位置:当前工作簿,新工作簿和个人宏工作簿,选择“当前工作簿”将宏保存在活动工作簿中,选择“新工作簿”将宏保存在一个新的空工作簿,选择“个人宏工作簿”将宏保存在名为Personal.xls的特定文件中,启动Excel时会自动地装载该文件。在“说明”文本框中添加宏的注释,即显示在代码顶部的文字,用来提供与该宏相关的信息。通常在录制宏之前,应规划好操作步骤,尽可能少地录制不必要的操作。Step2 单击“确定”按钮开始录制宏。此时会出现工具栏,包含两个按钮:“停止录制”按钮和“相对引用”按钮。单击“停止录制”按钮将停止录制操作,单击“相对引用”按钮将以相对于当前单元格的方式录制操作。默认的情况下,Excel采用绝对引用的方式录制宏。注意:此时工作簿状态栏中会出现“录音”的提示,菜单也由“录制新宏”变为“停止录制”。Step3 在Excel中进行操作。单击菜单“数据”→“筛选”→“高级筛选”,在打开的“高级筛选”对话框中选中“将筛选结果复制到其他位置”单选按钮。Step4 在“高级筛选”对话框中单击“列表区域”文本框,然后用鼠标选定Database工作表中A1:F10单元格区域,即原始数据列表。Step5 在“高级筛选”对话框中单击“条件区域”文本框,然后用鼠标选定Result工作表中的B2:C3单元格区域,即指定的日期范围。Step6 在“高级筛选”对话框中单击“复制到”文本框,然后用鼠标选定Result工作表中的B5单元格,即目标数据区域的起始单元格。完成选择后的“高级筛选”对话框。Step7 单击“确定”按钮,获取的数据将复制到单元格B5开始的区域中。宏录制将记录步骤3至步骤7所进行的操作,并将其转换成相应的VBA代码。Step8 关闭宏录制,单击菜单“工具”→“宏”→“Visual Basic编程器”或者Alt+F11组合键在VBE中查看录制的代码。Step9 整理或修改代码。录制操作完成,接下来应该在VBE中整理或修改宏录制器所录制的宏代码,使宏更简洁、更灵活且更有效率。通常宏录制器会“认真地”记录用户的每一步操作,应用与操作相关的所有属性和方法的所有参数,而实际进行的操作仅仅为其中的一部分,因此可以删除代码中与操作无关的方法参数和属性。比如在大多数情况下,有关选定对象和激活对象的代码并无实际的用途,而且会降低宏代码的整体效率,所以可以删除。此外,通过录制而得到的宏代码不够灵活,仅能用于执行某项特定的操作任务;不能做出判断,不能执行循环,不能提示用户僌相关信息,不能使用为题赋值;只能生成Sub过程。因此为了创建功能更强大的宏程序,有必要对录制宏的代码进行改进。在修改录制的代码时,应及时地调试代码,以免误删所需要的代码。本例中录制的代码很简洁,没有多余的代码,因此无须整理。在进一步的应用中,需要获取AdvancedFilter方法所在的代码并适当地修改该代码,当用户在Database工作表中增加数据时能查询最新的数据,使代码更灵活。修改后的代码如下:Sub GetDatas() Dim lLastRow As Long lLastRow = Sheets(“Database”).UsedRange.Rows.Count Range(“B5:G65536”).Clear Sheets(“Database”).Range(“A1:F” lLastRow).AdvancedFilter _ Action:=xlFilterCopy, _ CriteriaRange:=Range(“B2:C3”), _ CopyToRange:=Range(“B5”), _ Unique:=FalseEnd Sub代码解析:第3行中的代码获取Database工作表中已使用区域的行数并赋值给变量lLastRow。第4行中的代码清除了当前工作表中上次查询所获得的数据,以免在本次查询的结果中留下不必要的数据。第5行中的代码修改了宏录制器生成的代码,使用变量lLastRow扩展数据列表,从而可以获取最新的数据。修改代码后可以在Database工作表中添加数据,重新运行G
文档评论(0)