vba模拟器怎么加速(如何提高VBA代码运行速度)

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

vba模拟器怎么加速(如何提高VBA代码运行速度)

由于 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

可改为:

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

方法 4: 关闭屏幕更新

如果你的 VBA 程序前面三条做得比较差,则关闭屏幕更新是提高 VBA 程序运行速度的最 有效的方法,缩短运行时间 2/3 左右。关闭屏幕更新的方法:

Application.ScreenUpdate = False

请不要忘记 VBA 程序运行结束时再将该值设回来:

Application.ScreenUpdate = True

以上是提高 VBA 运行效率的比较有效的几种方法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年12月9日 下午1:40
下一篇 2022年12月9日 下午1:45

相关推荐

  • 安卓论坛哪个最好(曾经大名鼎鼎的三个手机论坛)

    对于如今的00后来说,它们连“刷机”都不一定试过,更别去玩那些更老的手机了。小编作为80后,经历过BBS风生水起的年代,也曾在三个玩机论坛活跃了十年,今天写一篇来回忆一下。 第一个论坛是0110,这是西门子手机的玩家论坛,大一那年我买了一部二手的西门子SX1,于是经常在论坛里灌水溜达。当年SX1很容易忘记开机锁而锁机,在论坛有来自售后的大神放出了软件,帮助许…

    2023年1月5日
    590
  • 原平市有几个乡镇(山西原平市属于哪个市)

    山西省忻州市原平市原平市,山西省下辖县级市,由忻州市代管,地处山西省北中部,东临五台县,西靠宁武县,南与忻府区、定襄县毗邻,北和代县、朔州市朔城区接壤。原平市(140981),山西省辖县级市,由忻州市

    2022年10月19日
    2300
  • 天玑8100到底有多大魅力?荣耀、1加基本敲定,新机就用它!

    这些年,联发科芯片受市场欢迎的程度在逐渐超越高通,这一好处其实大家都心知肚明,毕竟在芯片价格一路看涨的时代,一家独大对市场的稳定发展无法起到平衡作用。而从另外一方面来看,联发科在芯片技术方面也有着很明显的优势,从2021年第二季度的数据来看,联发科凭借38%的市场份额拿下了手机处理器市场冠军。特别是近期,随着天玑8100、天玑9000的推出,更多旗舰新机也随之接踵而至。天玑8100接替了骁龙870…

    2022年4月29日
    870
  • 苏格兰威士忌品牌排行前十(全球销量最好的苏格兰威士忌品牌)

    苏格兰威士忌市场大好,今年几乎所有榜中品牌都呈现了一定的增长,一起来看看。 NO.10 J&B 【今年销量】2.8 百万箱 【去年销量】2.3 百万箱 【去年排名】10 帝亚吉欧旗下的调和威士忌 J&B 去年暴跌 23.3%,不过今年强势反弹了 22.9% 的增长。虽说名次没有提升,销量也还没回到疫情前的水平,不过如果照这势头应该是有望回到 …

    2022年10月26日
    590
  • 楼兰古城门票3500元是真的吗(楼兰古城门票为什么那么贵)

    楼兰古城门票3500元是真的,本身楼兰古城并不是旅游景点,而是国家重点保护地区,为了不让很多人进入观赏,破坏生态,所以才会收这么高的价格,但对于热爱者来说,也会愿意买票了进行观看,这也是可以理解的。楼兰古城门票3500元

    2022年8月27日
    5070
  • 特朗普再次竞选总统的梦想要泡汤了(可能还要入狱20年)

    自从特朗普落选后,他有一个梦想,那就是再次成为美国总裁!为此,特朗普宣布再次竞选总统,不过有美国媒体报道,特朗普再次竞选总统的梦想要泡汤了,他甚至还有可能入狱20年。美国当地时间9月10日,白宫前律师

    2022年9月15日
    490
  • 描写动物作文描写动物作文范文

    小学到初中,平时的作文中,描写小动物的作文是比较多的,怎样写好这类作文呢?首先就得熟悉它们,仔细地观察它们。只有观察得细致,才能描写得具体。观察的时候一般可以从外形特点,活动情况,生活习性等几方面有顺

    2022年9月28日
    500
  • 美国人为什么不怕新冠病毒(美国疫情最新状况严重吗)

    关于新冠病毒,新冠肺炎到目前为止,已经持续三年了,新冠病毒蔓延在世界各国,全球各地对此做出了也各种防控措拖,但在美国有很多人拒绝戴口罩,那美国人为什么不怕新冠病毒?美国疫情最新状况严重吗?下面一起看看

    2022年9月22日
    640
  • 游乐王子语录合集(游乐王子经典台词一段)

    大家还记得《巴拉拉小魔仙》这部真人版动漫吗?相信在座的90后甚至是00后大部分都看过吧,最近游乐王子一句”雨女无瓜“真的是红遍各大平台啊,但是除了雨女无瓜,游乐王子还有好多塑料台词,这真的是我童年的男神吗? 首先给不知道的小伙伴解释一下什么叫”雨女无瓜“,这是游乐王子带着方言腔的台词,意思就是与你无关,说”雨女无瓜“的话显得人比较高冷神秘,因为我们的游乐王子…

    2023年4月12日
    570
  • 孙春兰:第九版防控方案不是放松,以最小成本控制疫情

    近日,国务院副总理孙春兰指:第九版防控方案不是放松。而是要以最短时间、最小成本控制疫情,确保疫情要防住、经济要稳住、发展要安全。孙春兰在河北各个重点场所深入了解了第九版的防控方案落

    2022年9月4日
    560

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信