文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院办公软件Excel第六课 提高Excel中VBA的效率
精品推荐
特别推荐
·八招设置Excel2007 用得更顺手
·用Excel实现定时提醒
·可以在Excel中使用的Office语音识别命令
·在同一Excel图表工作表中显示多个图表
·Excel 2007中创建或删除自定义数字格式
·Excel 2007表格行和列的移动或复制
·Excel旧表翻新技巧
·Excel中快速定位的技巧实例
·Excel密码保护的解除方法与解除原理
·用Excel函数快速统计学生期中考试成绩
·八种常见Excel错误提示及问题解决方法
·在Excel中将文本转换为数字的七种方法
·更改多个Excel工作表的数据合并计算
·解决Excel数值进位问题
·巧用Excel发送电子邮件
·跟我学做Excel XP斜线表头
·Excel 2007单元格内容的编辑与控制
·快速查找具有条件格式的Excel单元格
·Excel 2003数据隐藏小技巧
·办公软件 Excel真正的实现四舍五入
热点TOP10
·EXCEL快速操作技巧
·八招设置Excel2007 用得更顺手
·Excel密码保护的解除方法与解除原理
·比较常用的25条Excel技巧整理放送
·EXCEL2000使用技巧十招
·为什么EXCEL身份证号码都科学计数法?
·跟我学做Excel XP斜线表头
·让多页Excel表格自动打印统一表头
·在Excel中的打印设置的技巧(图)
·用Excel制作自动记录的考勤表
·在同一Excel图表工作表中显示多个图表
·改改小细节 Excel表格立刻变得更漂亮
·用Excel实现定时提醒
·将Excel的文本数字转换成数字
·将Excel中存储为文本的日期转换为日期格式
·如何把工作表中的小写字母都变成大写?
·在Excel中将文本转换为数字的七种方法
·节约成本之Excel打印技巧三则
·多科成绩也能实现快速录入
·Excel 2003数据隐藏小技巧

第六课 提高Excel中VBA的效率

日期:2004年4月1日 作者:清风网络学院 查看:[大字体 中字体 小字体]


由于Microsoft Office办公套件的广泛应用,以及该软件版本的不断提升,功能不断完善,在Office办公套件平台上开发出的的VBA应用程序越来越多,而VBA是一种宏语言,在运行速度上有很大的限制。因此VBA编程的方法直接关系到VBA程序运行的效率,本文列举了一些提高VBA程序运行效率的方法。

  方法1:尽量使用VBA原有的属性、方法和Worksheet函数

  由于Excel对象多达百多个,对象的属性、方法、事件多不胜数,对于初学者来说可能对它们不全部了解,这就产生了编程者经常编写与Excel对象的属性、方法相同功能的VBA代码段,而这些代码段的运行效率显然与Excel对象的属性、方法完成任务的速度相差甚大。例如用Range的属性CurrentRegion来返回Range 对象,该对象代表当前区。(当前区指以任意空白行及空白列的组合为边界的区域)。同样功能的VBA代码需数十行。因此编程前应尽可能多地了解Excel对象的属性、方法。

  充分利用Worksheet函数是提高程序运行速度的极度有效的方法。如求平均工资的例子:

      For Each c In
        Worksheet(1).Range(″A1:A1000″)
  TotalValue = TotalValue + c.Value
  Next
  AverageValue = TotalValue / Worksheet(1).Range(″A1:A1000″).Rows.Count

  而下面代码程序比上面例子快得多:
   AverageValue=Application.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: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.使用对象变量。
  如果你发现一个对象引用被多次使用,则你可以将此对象用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

  方法3:减少对象的激活和选择

  如果你的通过录制宏来学习VBA的,则你的VBA程序里一定充满了对象的激活和选择,例如Workbooks(XXX).Activate、Sheets(XXX).Select、Range(XXX).Select等,但事实上大多数情况下这些操作不是必需的。例如

  Sheets(″Sheet3″).Select
  Range(″A1″).Value = 100
  Range(″A2″).Value = 200

[1] [2] 下一页 




上一篇:第五课 利用VBA设置工作表使用权限

下一篇:第七课 如何在Excel里使用定时器

第六课 提高Excel中VBA的效率 相关文章:
·EXCEL快速操作技巧
·提高运行速度 教你一步一步优化XP系统
·设好eMule电驴两项关键配置 提高下载速度
·关于提高操作系统重装
·八招设置Excel2007 用得更顺手
·Excel密码保护的解除方法与解除原理
·比较常用的25条Excel技巧整理放送
·EXCEL2000使用技巧十招
·为什么EXCEL身份证号码都科学计数法?
·跟我学做Excel XP斜线表头
第六课 提高Excel中VBA的效率 相关软件:
·效率第一
·中文版Excel 2003实例与技巧
·Excel应用宝典
·QQ第六感V1.8
·勤哲Excel勤哲Excel服务器2007企业版V7.1.2
·『统一网关V0.96 让你的网速提高10倍』强烈推荐
·效率源大容量硬盘检测修复程式 V3.0 软盘版
·Excel Password V10.0.6745
·资产评估学课件第六章资源资产评估
·洪恩环境英语第六册课本

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot