网站大量收购独家精品文档,联系QQ:2885784924

VBA代码编写技巧1538.pptx

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VBA代码编写技巧1538.pptx

方法1:尽量使用VBA原有的属性、方法和Worksheet函数由于Excel对象多达百多个,对象的属性、方法、事件多不胜数,对于初学者来说可;能对它们不全部了解,这就产生了编程者经常编写与Excel对象的属性、方法相同功能的VBA代码段,而这些代码段的运行效率显然与Excel对象的;属性、方法完成任务的速度相差甚大。例如用Range的属性CurrentRegion来返回 Range 对象,该对象代表当前区。(当前区指以任;意空白行及空白列的组合为边界的区域)。同样功能的VBA代码需数十行。因此编程前应尽可能多地了解Excel对象的属性、方法。充分利用Works;heet函数是提高程序运行速度的极度有效的方法。如求平均工资的例子:For Each c In Worksheet(1).Range(′A1;:A1000′)Totalvalue=Totalvalue + c.valueNextAveragevalue=Totalvalue / W;orksheet(1).Range(′A1:A1000′).Rows.Count而下面代码程序比上面例子快得多:Averagevalue=A;pplication.WorksheetFunction.Average(Worksheets(1).Range(′A1:A1000′))其;它函数如Count,Counta,Countif,Match,Lookup等等,都能代替相同功能的VBA程序代码,提高程序的运行速度。方法2;:尽量减少使用对象引用,尤其在循环中每一个Excel对象的属性、方法的调用都需要通过OLE接口的一个或多个调用,这些OLE调用都是需要时间的;,减少使用对象引用能加快VBA代码的运行。例如 1.使用With语句。Workbooks(1).Sheets(1).Range(′A1:A1;000′).Font.Name=′Pay′Workbooks(1).Sheets(1).Range(′A1:A1000′).Font.Fon;tStyle=′Bold′ ...则以下语句比上面的快With Workbooks(1).Sheets(1).Range(′A1:A1000;′).FontName=′Pay′.FontStyle=′Bold′ ...End With2.使用对象变量如果你发现一个对象引用被多次使用;,则你可以将此对象用Set 设置为对象变量,以减少对对象的访问。如:Workbooks(1).Sheets(1).Range(′A1′).v;alue=100Workbooks(1).Sheets(1).Range(′A2′).value=200则以下代码比上面的要快:Set My;Sheet=Workbooks(1).Sheets(1)MySheet.Range(′A1′).value=100MySheet.Range;(′A2′).value=2003.在循环中要尽量减少对象的访问。For k=1 To 1000Sheets(′Sheet1′).Selec;tCells(k,1).value=Cells(1,1).valueNext k则以下代码比上面的要快:Set Thevalue=Cells;(1,1).valueSheets(′Sheet1′).SelectFor k=1 To 1000Cells(k,1).value=Thev;alueNext k方法3:减少对象的激活和选择如果你的通过录制宏来学习VBA的,则你的VBA程序里一定充满了对象的激活和选择,例如Work;books(XXX).Activate、Sheets(XXX).Select、Range(XXX).Select等,但事实上大多数情况下这些;操作不是必需的。例如Sheets(′Sheet3′).SelectRange(′A1′).value=100Range(′A2′).valu;e=200可改为:With Sheets(′Sheet3′).Range(′A1′).value=100.Range(′A2′).value;=200End With方法4:关闭屏幕更新如果你的VBA程序前面三条做得比较差,则关闭屏幕更新是提高VBA程序运行速度的最有效的方法,缩短;运行时间2/3左右。关闭屏幕更新的方法:Application.Screenupdat=False请不要忘记VBA程序运行结束时再将该值设回;来:Application.Screenupdat=True;医药网 /

文档评论(0)

liuxiaoyu98 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档