天天看点

Excel VBA 实现电子钟

来源:http://mcdelfino.blog.51cto.com/2058744/691026

Dim Runtime As Date                             '定义时间变量
 
Sub RunTimer()
    Runtime = Now() + TimeValue("00:00:02")     '时间显示为增加1秒
    Application.OnTime Runtime, "my_Procedure"  '在这个指定的时间执行下面的过程
End Sub
 
Sub my_Procedure()
    Range("A1") = Format(Time, "h:mm:ss")       '在指定的表格显示系统当前的时间(Time)
    RunTimer                                    '回头继续执行上面的程序
End Sub      

OnTime函数指在某一具体时间执行某一过程,即过程my_Procedure。

执行my_Procedure的时候,就显示现在的时间,然后立即执行Runtime过程,接着就循环下去,效果如下图所示:(颜色大小可以另外设置)

Excel VBA 实现电子钟

涉及到的相关概念:

  1. Date数据类型:表示从 0001 年 1 月 1 日到 9999 年 12 月 31 日的日期以及从午夜 12:00:00 到晚上 11:59:59.9999999 的时间。Date 的默认值为 0001 年 1 月 1 日的 0:00:00(午夜)。
  2. Now 函数:以 datetime 格式返回当前日期和时间。
  3. Time 函数:返回系统当前的时间。
  4. TimeValue 函数:将文本格式的时间转换为日期时间格式的时间。
  5. Application.OnTime 函数:安排一个过程在将来的特定时间运行(既可以是具体指定的某个时间,也可以是指定的一段时间之后)。

      OnTime(EarliestTime, Procedure, LatestTime, Schedule)

      后面两个为可选参数!

    Application.OnTime Runtime, "my_Procedure"
    单独一行的方法不能加括号,要是涉及到赋值操作,则要加括号!      
  6. Worksheet.Cells 属性:没有参数的时候指工作表中所有的单元格,带一个参数则表示第一行的第几个单元格,带两个参数,则分别表示行和列!
    With Cells(2, 2).Font
            .Size = 20
            .Color = RGB(255, 0, 0)
            .Name = "Arial Black"
            .FontStyle = "Bold Italic"
        End With      
  7. Worksheet.Range 属性:它代表一个单元格或单元格区域。
  8. Format 函数:返回根据格式 String 表达式中包含的指令设置格式的字符串。其中格式有预定义的符号,通过符号来代表不一样的显示格式!

继续阅读