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

如何提高Excel中VBA的运行速度,VBA运行速度优化方法


  还在为Excel中VBA运行速度慢发愁吗?今天就来分享几个能有效提高速度的例子,手把手教你优化代码。


使用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对象的属性和方法调用都得通过OLE接口,这可是很耗时的,减少对象引用能让VBA跑得更快。


  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


  2.用对象变量


  要是一个对象引用总被用,就可以把它设为对象变量,比如:


  复制代码


  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


减少对象激活和选择


  比如这样的代码:


  复制代码


  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


  '打开屏幕刷新


  其实除了这些,还有像将数据存入数组处理、减少工作表间切换等方法也能提高VBA运行速度,大家可以自己去试试。


  你平时用VBA时遇到过运行慢的问题吗?试试这些方法,看看有没有效果,也可以分享你的优化技巧哦。


相关文章

PPT底板制作方法,怎样做出黑板报样式的底板

想知道怎么做出好看的 PPT 黑板报底板吗?其实方法不难,下面就来详细说说。制作PPT黑板报底板的方法介绍底板设置方面,PPT的背景得设成黑色,但别用纯黑,带点灰度的黑色会更好。这就是制作PPT底板的...

Excel计算周岁、虚岁、实际年龄,详细教程分享

Excel计算周岁、虚岁、实际年龄,详细教程分享

周岁计算方法方法一:在C2单元格里输入公式“=YEAR(TODAY())-YEAR(B2)”,输入完成后回车,C2单元格就完成了周岁年龄的计算。接着,双击单元格右下角或者按住拖拽,就能向下填充计算其他...

微信WPS文件弄电脑打印的操作,微信文件传电脑打印方法

微信WPS文件弄电脑打印的操作,微信文件传电脑打印方法

微信里的WPS文件想放电脑打印?看这法子就行  微信上收到的WPS文件,咋弄到电脑上去打印呢?这篇就来给大伙说说操作步骤,有需要的朋友可以瞅瞅。具体操作步骤  在电脑上,用百度搜“微信网页版”,找到微...

WPS自带公式编辑器替换Mathtype教程,转换工具怎么用?

WPS自带公式编辑器替换Mathtype教程,转换工具怎么用?

  用WPS时嫌自带公式编辑器功能少?重装Mathtype后WPS会自动切换,但重装WPS后又变回原来的编辑器,很多人会再重装Mathtype,其实不用这么麻烦,这里有个简单方法!WPS中将自带公式编...

项目文件太多难找?Excel制作文件目录教程,附文件名提取技巧

项目文件太多难找?Excel制作文件目录教程,附文件名提取技巧

  还在为项目文件太多找不到而发愁?想不想在Excel里做个文件目录?其实很简单,来看下面的制作方法吧。提取文件名称  如下图所示,这是一个项目文件夹里的所有文件:    要是文件少,直接输入到Exc...