当前位置:首页 > 电脑教程 > 软件教程 > 正文内容

ExcelVBA如何提高代码效率?怎样减少对象引用?


  咱先来说说啊,在Excel里做计算的时候,有个特别重要的事儿得注意。就比如说你要是想求个平均数,用循环的办法来写代码


  代码就像这样


  For Each c In Range('A1:A1000')


  TotalValue=TotalValue + c.Value


  Next


  AverageValue=TotalValue /Range('A1:A1000').Rows.Count


  但你知道吗,这样写出来的代码,执行效率可比直接用Excel自带函数低多了


  直接用函数的代码是这样的


  AverageValue=Application.WorksheetFunction.Average(Range('A1:A1000'))


  同学们可得记住啊,要是Excel自己有函数或者属性能解决的问题,就别费劲自己写代码了。


  再给大家讲个提高Excel VBA代码效率的办法,就是尽量别老引用对象,尤其是在循环里面


  为啥这么说呢?因为在Excel里,调用每个对象的属性或者方法,都得通过OLE接口,而这个过程是挺费时间的。所以啊,少引用对象就能让代码跑得更快。给大家举个例子


  1. 可以用With语句


  比如说有这样的代码


  Workbooks(1).Sheets(1).Range('A1:A1000').Font.Name='Pay'


  Workbooks(1).Sheets(1).Range('A1:A1000').Font.FontStyle='Bold' ...


  那下面这种写法就比上面的快多了


  With Workbooks(1).Sheets(1).Range('A1:A1000').Font


  .Name='Pay'


  .FontStyle='Bold'


  ...


  End With


  (在With语句内部执行的时候,VB会在内存里维护一个临时对象,就跟下面这种用临时变量的方法差不多,只不过这个临时变量是系统自己定义和命名的)


  2. 用对象变量也能提高效率


  要是你发现有个对象引用被多次使用,那你就可以把这个对象用Set设置成对象变量,这样就能减少对对象的访问。就像这样


  有这样的代码


  Workbooks(1).Sheets(1).Range('A1').Value=100


  Workbooks(1).Sheets(1).Range('A2').Value=200


  那下面这段代码就比上面的快


  Set MySheet=Workbooks(1).Sheets(1)


  MySheet.Range('A1').Value=100


  MySheet.Range('A2').Value=200


  3. 在循环里更得注意减少对对象的访问


  看这段代码


  For k=1 To 1000


  Sheets('Sheet1').Select


  Cells(k,1).Value=Cells(1,1).Value


  Next k


  下面这段代码就比上面的效率高


  Set TheValue=Cells(1,1).Value


  Sheets('Sheet1').Select


  For k=1 To 1000


  Cells(k,1).Value=TheValue


  Next k


  还有一个提高Excel VBA代码效率的小窍门,就是减少对象的激活和选择


  比如说有这样的代码


  Sheets('Sheet3').Select


  Range('A1').Value=100


  Range('A2').Value=200


  就可以改成


  With Sheets('Sheet3')


  .Range('A1').Value=100


  .Range('A2').Value=200


  End With


  最后再给大家分享一个很多用Vba的人都知道的方法,就是关闭屏幕更新


  这可是提高代码运行效率最有效的方法之一。不过有一点得特别注意,就是关闭屏幕刷新之后,一定要记得在代码运行完了之后重新打开。尤其是当代码运行出错的时候,得有正确的错误处理,保证屏幕刷新能重新打开。就像这样


  Application.ScreenUpdate=False


  '关闭屏幕刷新


  On Error Goto ErrLab


  ErrLab:


  Application.ScreenUpdate=True


  '打开屏幕刷新


相关文章

COUNTIF怎么统计6月1日到30日?日期范围计算技巧

COUNTIF怎么统计6月1日到30日?日期范围计算技巧

  今天咱们来聊聊怎么用COUNTIF函数统计日期出现次数哈。  软件名称:Excel2007 绿色版精简免费[58MB] 软件大小:58MB 更新时间:2016-06-27    1、先举个简单例子...

360网络测速器功能有哪些,测速方法教程

360网络测速器功能有哪些,测速方法教程

你的网速够快吗?来试试360网络测速器吧!这是从360安全卫士里提取的免费软件,不用安装卫士就能测网速,超方便呢。360网络测速器在哪找1、打开【360安全卫士】—【功能大全】—【360宽带网速测试】...

AI怎么画卡路里符号?详细步骤教你绘制KCAL图标

AI怎么画卡路里符号?详细步骤教你绘制KCAL图标

想在AI里画出卡路里符号却不知道从哪下手?别担心!今天就来教你一步步绘制出专业的卡路里符号,就算是新手也能轻松学会,快来看看具体操作吧:一、创建画布与基础圆形1. 首先打开AI软件,新建一个1280x...

文献检索浏览器安装使用教程,轻松掌握下载方法

文献检索浏览器安装使用教程,轻松掌握下载方法

你是否曾为了一篇优质论文题材绞尽脑汁却无从下手?那种苦恼简直让人头大。当你沉下心想写学术研究时,却发现没丰富素材能借鉴,写出的文章空洞又乏味,寓意不深刻还题材老套,直接浇灭了创作热情。要是正面临毕业找...

Excel2010折线图坐标轴格式调整教程

Excel2010折线图坐标轴格式调整教程

还在为Excel折线图太普通发愁吗?来看Excel2010炫酷折线图设计教程!首先呢,启动Excel2010,执行文件-打开命令,把事先准备好的表格数据打开哦。接着,在数据区域选任意一个单元格,执行插...

AI卡通鳄鱼怎么画,钢笔工具使用教程

AI卡通鳄鱼怎么画,钢笔工具使用教程

想画出超萌的AI卡通鳄鱼吗?今天就来手把手教你,简单几步让鳄鱼变可爱!AI卡通鳄鱼绘制步骤详解第1步、先瞧瞧AI画好的卡通鳄鱼长啥样,心里有个底再动手~第2步、打开AI软件后,拿起钢笔工具,先把卡通鳄...