第一句子大全,网罗天下好句子,好文章尽在本站!

VBA代码优化 Select和Activate语句对程序速度的影响

时间:2023-12-17

在VBA代码的编写过程中我们经常会使用大量的Select和Activate语句,这些语句的使用往往会增加代码运行过程中的可视效果,但往往会牺牲代码的运行速度

友情提示:本文共有 1407 个字,阅读大概需要 3 分钟。

大家好,我们今日继续讲解VBA代码解决方案的第89讲内容:VBA代码的优化篇,少用激活Activate语句或Select选择语句,可以提高程序的运行速度。

在VBA代码的编写过程中我们经常会使用大量的Select和Activate语句,这些语句的使用往往会增加代码运行过程中的可视效果,但往往会牺牲代码的运行速度。所以可以通过减少这些语句的使用以加快运行速度,

首先我们先研究一下这两个方法,Select和Activate都是作用于对象,但是也有所分别,对于工作表对象,select方法是后台操作,可以选择多个工作表,而activate则无法选择多个工作表激活,所以会报错。select方法无法选择隐藏的工作表,例如我将sheet1工作表隐藏后选择它。 ActiveWorkbook.Sheets("sheet1").Select。而使用activate方法则可以激活隐藏的工作表,不会报错。针对工作表而言,两个方法也有不同的地方。首先select选择范围后,会默认激活区域中最左上角的单元格。使用select选择了区域范围会有对应的范围提示框,其左上角单元格高亮无阴影显示。也就是说select无法指定激活的单元格,而activate则可以,不过需要搭配着select使用,必须先使用select指定范围,然后使用activate指定单元格。分析了上述的选择不同后,我们接着看下面的代码:

Sub MySta()

Dim i As Integer

Dim t As Date

Dim t1 As String

Dim t2 As String

t = Timer

For i = 1 To 3000

Sheets("Sheet10").Select

Sheets("Sheet10").Cells(i, 1).Select

ActiveCell.FormulaR1C1 = "10"

Next

t1 = Timer - t

t = Timer

For i = 1 To 3000

Sheets("Sheet10").Cells(i, 5) = "10"

Next

t2 = Timer - t

Sheets("Sheet10").Cells(3, 2).Select

Sheets("Sheet10").Cells(3, 2) = Format(t1, "0.00000")

Sheets("Sheet10").Cells(4, 2) = Format(t2, "0.00000")

MsgBox "第一次运行时间:" & Format(t1, "0.00000") & "秒" _

& Chr(13) & "第二次运行时间:" & Format(t2, "0.00000") & "秒"

End Sub

代码解析:

Sta过程分别使用录制宏所得的代码和修改后的代码给单元格填充,最后使用消息显示运行时间。

第8行代码到第10行代码有两次使用Select方法,第15行代码是修改后的代码,在代码量不大的情况下运行速度区别不大,但是在循环5000次后运行速度就会差别很大。

运行Sta过程,消息框显示两种方法的运行时间,可以看出后一种方法的运行时间要远远小于前者代码的运行时间.

代码窗口:

运行截图:

从上述代码运行结果看出:节约的时间是很可观的

今日内容回向:

1 本节优化代码的措施是什么?

2 你是否认同上面的优化措施呢?其实我在写代码的时候往往是采用的第一种方案。不做优化。

本文如果对你有帮助,请点赞收藏《VBA代码优化 Select和Activate语句对程序速度的影响》,同时在此感谢原作者。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。
显示评论内容(1)
  1. KING.VAIN2023-12-30 10:00KING.VAIN[新疆网友]202.149.55.180
    我觉得VBA代码优化对程序速度影响很大,尤其是减少Select和Activate语句的使用,能明显提升运行效率。
    顶2踩0
相关阅读
用Select Case语句对分段税率进行精确计算

用Select Case语句对分段税率进行精确计算

...句(If...Then...Else)在VBA中的利用”。这讲是第四节“用Select Case语句对分段税率进行精确计算”。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,案例众多。大家可以非常容易的掌握相关的知识,这套教程面...

2023-06-15 #经典句子

VBA编程经典语句系列之一

VBA编程经典语句系列之一

...移至工作表的最后24 Worksheets(Array(“sheet1”,”sheet2”)).Select 同时选择工作表1和工作表225 Sheets(“sheet1”).Delete或 Sheets(1).Delete 删除工作表126 ActiveWorkbook.Sheets(i).Name 获取工作表i的名称27 ActiveSheet.UsedRange.FormatConditions.Delete 删...

2023-12-04 #经典句子

VB\VBA\VBS中Select Case 语句的用法 适用Select Case语句场景

VB\VBA\VBS中Select Case 语句的用法 适用Select Case语句场景

...t(Rnd() * 71 + 30)"定义一个变量a,随机赋值为30-100之间的整数Select Case a"把变量a作为Select Case语句“表达式”Case 0 To 59: MsgBox "不合格""如果“表达式”的值在0-59(含0和59)之间则执行本行语句,否则忽略,可以使用“开始值 to 结束...

2023-07-16 #经典句子

Excel VBA流程图解之Select Case语句 多分支选择的最佳选择

Excel VBA流程图解之Select Case语句 多分支选择的最佳选择

...问题,IF每个条件里都要写判断的对象,很是麻烦,那么Select Case就是为此而生,Seelct Case语句只需要写一个判断的对象,后续的Case分支里直接对他判断即可,语法如下流程图如下重点解析,Select Case的判断流程类似于IF Elseif 但...

2023-08-29 #经典句子

结构化查询语言SQL在VBA中几种常见的查询表达方式

结构化查询语言SQL在VBA中几种常见的查询表达方式

...结一下VBA中SQL语句的几种常见查询的表达方式。方式一:Select 查询表达式 From 数据区域其中,”查询表达式”可以是下列之一或其组合,对多种方式的组合,用逗号搁开:(1)星号(*)表示“数据源”的所有字段。(2)字段名...

2017-01-24 #经典句子

excel编程系列基础:典型的判断语句应用技巧

excel编程系列基础:典型的判断语句应用技巧

...,判断语句。典型的判断语句有2种,分别是IF判断语句和SELECT判断语句。学习更多技巧,请收藏关注部落窝教育excel图文教程。【前言】上一篇的循环语句同学们都学会了吗?如果没有学会,那就需要再给自己一些压力,因为有...

2023-10-08 #经典句子

VBA实用语句讲解

VBA实用语句讲解

...作,包括选择、计数、移动、复制等。1 ActiveWindow.RangeSelection.Count 单元格计数语句说明:完成活动窗口中选择的单元格计数备注:ActiveWindow是指当前活动的窗口2 Selection.Count单元格计数语句说明:完成当前选中区域的单元格...

2023-06-04 #经典句子

ReDim语句的应用

ReDim语句的应用

...的第十二章“Excel VBA中数组的应用”。这讲是第3节“ReDim语句的应用”。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,案例众多。大家可以非常容易的掌握相关的知识,这套教程面向初学人员,共三册,十...

2023-11-30 #经典句子