在excel状态栏上动态显示时间

来源:互联网 发布:绣花机制版软件 编辑:程序博客网 时间:2024/05/02 09:01

在状态栏上动态显示时间[Application.OnTime 方法]
-by thinking(2006-8-29)

1.认识StatusBar:

在微软引导下的软件帝国里,StatusBar无疑是标志性的设计之一。通常来讲,StatusBar(状态栏) 是位于软件底部的一个条状标签,它一般用来显示软件的状态,例如鼠标状态(图像编辑软件中的鼠标指针位置显示),键盘状态(WORD中的大写状态,数字状态等等),软件本身所处的状态(如Word,Excel的编辑状态)等等。为用户使用软件提供了很大的便利,从而也成为必不可少的控件之一。

状态栏能够方便用户,因此在Excel中微软也将此共享出来,也能够使我们在开发自己的VBA程序时,更加方便地给与用户提示。StatusBar被集成在Application对象下面的一个属性里。

StatusBar 属性

返回或设置状态栏中的文字。String 类型,可读写。

1.1 控制StatusBar的显示:

对于StatusBar的显示与隐藏,Excel另外提供了一个属性来控制:DisplayStatusBar。也属于Application对象。

DisplayStatusBar 属性
如果显示状态栏,则该值为 TrueBoolean 类型,可读写。

如果想显示StatusBar,就需要用Application.DisplayStatusBar = True。

1.2 StatusBar的控制权:

我们知道,对于一个Excel程序(或其他程序)来讲,本身只有一个状态栏,那么对于程序来说,什么时候应该显示程序本身的,什么时候用来显示用户定义的呢,这里就有一个掌握控制权的问题。对此,Excel使用的依然是StatusBar属性。
在上面我们已谈到,StatusBar返回一个字符串类型,那么Excel依什么来判断StatusBar的控制权呢?
这里要说的是StatusBar的一个隐藏设定,就是StatusBar也可以返回Boolean类型,如果返回True,则Excel认为是用户程序在控制状态栏,如果是False,则认为是Excel本身在控制:如下例:
Application.StatusBar = False
则告诉Excel,请接管回状态栏;

如果不指定StatusBar状态,而直接对其进行赋值(即,赋字符串类型数值),则Excel会自动认为被用户接管,直到你指定StatusBar属性为False为止。

1.3 使用StatusBar:

如上所述,使用起来就很简单了。可以直接对StatusBar来赋值以显示我们想要显示的字符串内容。如下:
如果我们想将状态栏文字设为“Please be patient...”,那么就按下表达:Application.StatusBar = "Please be patient..."

 

2、认识OnTime方法:

 


Option Explicit

Sub RunTime()
   Application.OnTime Now + TimeValue("00:00:01"), "ShowTime", , True
End Sub

Private Sub ShowTime()
     Call RunTime
     Application.StatusBar = VBA.Format$(Now, "yyyy-mm-dd hh:mm:ss")
End Sub

Sub CancelTime()
     On Error Resume Next
     Application.OnTime Now + TimeValue("00:00:01"), "ShowTime", , False
     Application.StatusBar = False
End Sub

 
原创粉丝点击