前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >VBA编程With语句

VBA编程With语句

作者头像
无言之月
发布2019-10-13 15:44:22
2.6K0
发布2019-10-13 15:44:22
举报

大家好,本节介绍用于处理对象和集合的语句之一的with语句,内容相对比较简单,with语句的问题在上节时有引出。

With 语句

上节中涉及一个对象的执行多个操作时,如多条属性时,每条属性的设置都具体的写出对象的完整形式,如上节的单元格字体属性的例子:

在代码中如果是写入单元格字体完整形式,worksheets(1).range("b2").font会显著增加代码输入量,不仅容易引发重复输入导致的错误,对象的频繁出现会降低代码的执行效率。

而with....end with语句就可以对某个对象执行一系列操作,而不必重复指出该对象的名称。它的语法结构如下:

with <对象>

[语句代码]

end with

结构相对简单,下面我们就将上节字体属性代码用with语句来修改如下:

代码中间所有属性的对象worksheets(1).range("b2").font 单独列出来,然后另起一行。加上英文逗号和属性,如.name等,代码如下:

Sub test()

With Worksheets(1).Range("b2").Font

.Name = "微软雅黑"

.Size = 16

.ColorIndex = 5

.Bold = True

End With

End Sub

上节说过很多属性,不需要特别记忆,在出现遗忘时可以通过录制宏查看代码即可,而录制宏后得到的代码,通常都有with语句,如下图:

了解with语句,有助于查看录制宏的代码,同时在以后编写代码时,同样的情形下可以用于简化代码。

VBA 代码运行时间

上面提到with语句可以提高vba代码的执行效率,代码的执行效率是后期编写程序时需要注意的问题。

当程序需要对大量数据和对象进行操作时,excel程序通常运行变慢,甚者如同程序崩溃一样,这就涉及优化代码,后期介绍时会作说明总结。

下面简单说下在程序通过代码中,如何记录程序运行的时间。以一段繁琐的代码为例,新建10张工作表,并修改工作表中单元格字体,看代码运行时间。

原理很简单,即首先把当前时间赋值给变量,作为初始时间,在程序运行代码的最后,用当前时间减去初始时间得到的时间差,即是vba程序运行时间,代码如下:

Sub test()

Dim star As Double

star = Timer

[VBA程序代码]

MsgBox "程序耗时" & Format(Timer - star, "0.00") & "秒"

End Sub

前面介绍with语句的使用,减少代码中对象出现的频率就是优化代码运行效率的有效方式。


本节主要介绍with语句的使用,可以简化代码并提高程序的运行效率。然后提及如何记录程序运行时间,字后期学习中也会说明哪些方法可以提高代码运行效率。下节将介绍单元格对象的方法,祝大家学习快乐。


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-08-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel和Access学习笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档