打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA常用代码解析(第十六讲)

先插一句啊,本人代写VBA代码程序,详情咨询QQ:546039945

正文开始前,还是广告,扫一扫二维码,正版视频教材和30本电子教材全部拥有!赶紧行动啊!

注:视频在手机上不显示,如需查看请在电脑上输入:https://item.taobao.com/item.htm?id=521212444712

066 Excel中的“定时器”

Excel VBA并没有提供定时器控件,但是用户可以通过Application对象的OnTime方法实现简单的定时器功能,如下面的代码所示。

Sub StartTimer()

Sheet1.Cells(12) = Sheet1.Cells(12) + 1

Application.OnTimeNow + TimeValue('00:00:01')'StartTimer'

End Sub

代码解析:

StartTimer过程,使用Application对象的OnTime方法循环调用StartTimer过程实现每隔一秒钟运行一次StartTimer过程,从而在B1单元格中不断地显示程序累计运行时间。

2行代码将B1单元格的值在原有的数字上加1

3行代码使用OnTime方法在1秒后重新调用StartTimer过程,使B1单元格的值不断的加1,从而显示程序累计运行时间。

应用于Application对象的OnTime方法能够安排一个过程在将来的特定时间运行,语法如下:

expression.OnTime(EarliestTimeProcedureLatestTimeSchedule)

参数expression是必需的,返回一个Application对象。

参数EarliestTime是必需的,设置指定的过程开始运行的时间。使用Now + TimeValue(time)可以安排从现在开始经过一段时间之后运行某个过程,使用TimeValue(time)可以安排在指定的时间运行某个过程。

参数Procedure是必需的,设置要运行的过程名称。

参数LatestTime是可选的,设置过程开始运行的最晚时间。例如将参数LatestTime设置为EarliestTime+10,当时间到了EarliestTime时如果Excel不处于空闲状态,那么Excel将等待10秒,如果在10秒内Excel不能回到空闲状态,则不运行该过程。如果省略该参数,Excel将一直等待到可以运行该过程为止。

参数Schedule是可选的,如果其值为True(默认值),则安排一个新的OnTime过程,如果其值为False,则清除先前设置的过程。

取消定时的代码如下:

Sub EndTimer()

On ErrorGoTo Line

Application.OnTimeNow + TimeValue('00:00:01')'StartTimer',,False

Sheet1.Cells(12) = 0

ExitSub

Line:

MsgBox'请先按[开始]按钮!'

End Sub

代码解析:

EndTimer过程取消StartTimer过程的定时。

2行代码错误处理语句,因为如果还没有运行StartTimer过程而先运行EndTimer过程取消定时,程序会提示错误,,因此使用On Error GoTo Line语句在错误发生时执行第7行代码显示一个提示消息框。

067 设置活动打印机的名称

使用Application 对象的ActivePrinter属性可以设置活动打印机的名称,如下面的代码所示。

Sub myPrinter()

DimmyPrinter As String

myPrinter= 'HP LaserJet P1008 Ne04:'

Application.ActivePrinter= myPrinter

MsgBox'活动打印机为:' & Left(myPrinterInStr(myPrinter'') - 1)

End Sub

代码解析:

myPrinter过程将活动打印机设置为“HP LaserJet P1008

3行代码指定需要设置为活动打印机的名称,第4行代码通过设置Application 对象的ActivePrinter属性将活动打印机设置为“HP LaserJet P1008

5行代码使用消息框显示活动打印机的名称及型号。

068 屏蔽、改变组合键的功能

使用Application 对象的OnKey方法可以屏蔽或改变组合键的默认操作,如下面的代码所示。

Private Sub Workbook_Open()

Application.OnKey'^{c}''myOnKey'

End Sub

Sub myOnKey()

MsgBox'本工作表禁止复制数据!'

End Sub

代码解析:

1行到第3行代码工作簿的Open事件,在工作簿打开时使用OnKey方法改变<Ctrl+C>组合键的功能。

应用于Application 对象的OnKey方法指定特定键或特定的组合键运行的过程,语法如下:

expression.OnKey(KeyProcedure)

参数expression是必需的,该表达式返回一个Application对象。

参数Key是必需的,用于表示要按的键的字符串,具体请参阅VBA中的帮助。

参数Procedure是可选的,表示要运行的过程名称的字符串,本示例中将过程名称指定为第4行到第6行代码的“myOnKey”过程,当按下<Ctrl +C>组合键时并不会执行复制操作而只显示一个消息框。如果将Procedure参数指定为空文本(““),则按<Ctrl +C>组合键时不发生任何操作,达到屏蔽组合键的效果。

如果省略Procedure参数,则按下<Ctrl+C>组合键时产生Microsoft Excel中的正常结果,同时清除先前使用OnKey方法所做的特殊击键设置,所以恢复<Ctrl +C>组合键的代码如下:

Application.OnKey'^{c}'

为了不影响其他工作簿的功能,恢复代码就放在工作簿的Deactivate事件中,如下面的代码所示:

Private Sub Workbook_Deactivate()

Application.OnKey'^{c}'

End Sub

代码解析:

当工作簿从活动状态转为非活动状态时恢复<Ctrl +C>组合键的正常功能。

069 设置Excel窗口标题栏

Excel主窗口标题栏默认的名称是“Microsoft Excel”,通过设置Application对象的Caption属性可以改变Excel主窗口的标题栏,如下面的代码所示。

Sub AppCaption()

Application.Caption= '修改标题栏名称'

MsgBox'下面将恢复默认的标题栏名称!'

Application.Caption= Empty

End Sub

代码解析:

2行代码将Excel窗口标题设置为“修改标题栏名称”。

应用于Application对象的Caption属性设置显示在Microsoft Excel主窗口标题栏中的名称,语法如下:

expression.Caption

3行代码恢复MicrosoftExcel主窗口标题栏中的名称。如果未设置Caption属性(““)或将其设置为Empty(表示未初始化的变量值),则本属性返回“MicrosoftExcel”。

Caption属性设置为常数vbNullChar(表示值为 0 的字符)可以删除标题栏中的名称,如下面的代码所示。

Sub DleCaption()

Application.Caption= vbNullChar

MsgBox'下面将恢复默认的标题栏名称!'

Application.Caption=““

End Sub

代码解析:

2行代码删除Excel主窗口标题栏,

070 自定义Excel状态栏

Excel状态栏显示应用程序的当前状态(例如就绪、输入等)或上下文提示信息,通过设置Application对象的Statusbar属性可以修改状态栏,以显示用户自定义的信息,代码如下:

Sub myStatusBar()

Dimrng As Range

ForEach rng In Sheet1.Range('A1:D10000')

Application.StatusBar = '正在计算单元格 ' & rng.Address(00) & ' 的数据...'

rng = 100

Next

Application.StatusBar= False

End Sub

代码解析:

myStatusBar过程在给选定单元格区域赋值的同时,将Excel状态栏中的文字设置为正在赋值的单元格地址。

应用于Application对象的StatusBar属性返回或设置状态栏中的文字,如果需要恢复默认的状态栏文字,将本属性设为False即可。


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
利用VBA代码改变主窗口标题栏名称和隐藏Excel主窗口
为Excel中宏的启动指定快捷键的方法
VBA实用小程序:禁用/启用所有Excel快捷键
特定键或特定的组合键OnKey
Application.Ontime
excel2003屏蔽菜单、工具栏等代码大全
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服