VBA基础知识整理(日期,时间)

2020年5月3日15:27:53 发表评论 953 views

日期和时间计算

'1 计算两个日期相隔天数,月数,年数,小时,分种,秒

Sub tt1()
    Dim d1, d2 As Date
    d1 = #11/21/2011#
    d2 = #12/1/2011#
    Debug.Print "相隔" & (d2 - d1) & "天"
    Debug.Print "相隔" & DateDiff("d", d1, d2) & "天"
    Debug.Print "相隔" & DateDiff("m", d1, d2) & "月"
    Debug.Print "相隔" & DateDiff("yyyy", d1, d2) & "年"
    Debug.Print "相隔" & DateDiff("q", d1, d2) & "季"
    Debug.Print "相隔" & DateDiff("w", d1, d2) & "周"
    Debug.Print "相隔" & DateDiff("h", d1, d2) & "小时"
    Debug.Print "相隔" & DateDiff("n", d1, d2) & "分种"
    Debug.Print "相隔" & DateDiff("s", d1, d2) & "秒"
End Sub
 -----------------------------------------------------------------  
Sub tt2() '计算两时间的差
  Dim t, x
  t = Timer
  
  For x = 1 To 10000000
  Next x
  
  Debug.Print Timer - t
End Sub

'2 日期时间加减

Sub tt3()
    Dim d1, d2 As Date
    d1 = "2001-10-1 00:00:00"
    Debug.Print VBA.DateAdd("d", 10, d1) '加上10天
    Debug.Print VBA.DateAdd("m", 10, d1) '加上10个月
    Debug.Print VBA.DateAdd("yyyy", 10, d1) '加上10年
    Debug.Print VBA.DateAdd("yyyy", -10, d1) '减少10年
    Debug.Print VBA.DateAdd("h", 10, d1) '加上10小时后的时间
    Debug.Print VBA.DateAdd("n", 10, d1) '加上10分种后的时间
    Debug.Print VBA.DateAdd("s", 10, d1) '加上10秒后的时间
End Sub

日期,时间返回

'1 返回当前日期、时间(指本机系统设置的日期和时间)

Sub t1()
    Debug.Print Date '返回当前日期
    Debug.Print Time '返回当前时间
    Debug.Print Now  '返回当前日期+时间
End Sub

'2 格式化显示日期

Sub t2()
         Debug.Print Format(Now, "yyyy-mm-dd")
         Debug.Print Format(Now, "yyyy年mm月dd日")
         Debug.Print Format(Now, "yyyy年mm月dd日 h:mm:ss")
         Debug.Print Format(Now, "d-mmm-yy") '英文月份
         Debug.Print Format(Now, "d-mmmm-yy") '英文月份
         Debug.Print Format(Now, "aaaa") '中文星期
         Debug.Print Format(Now, "ddd") '英文星期前三个字母
         Debug.Print Format(Now, "dddd") '英文星期完整显示
   End Sub

'3 根据年月日返回日期

Sub t3()
     MsgBox VBA.DateSerial(2011, 10, 1)
End Sub

'4 根据小时分种返回时间

   Sub t4()
     MsgBox VBA.TimeSerial(1, 2, 1)
   End Sub

'5 返回年月日小时分秒

Sub t5()
    Dim d
    d = "2011-10-28 01:10:03"
    Debug.Print Year(d) & "年"
    Debug.Print Month(d) & "月"
    Debug.Print Day(d) & "日"
    Debug.Print Hour(d) & "时"
    Debug.Print VBA.Minute(d) & "分"
    Debug.Print Second(d) & "秒"
  End Sub

计时器ontime

Dim k
Sub ttt1()
    Application.OnTime TimeValue("15:46:00"), "A"
End Sub
-------------------------------------------------------------------
Sub a()
      MsgBox "test"
End Sub
------------------------------------------------------------------
Sub ttt2() 	'现在开始多少时间后
	Application.OnTime Now + TimeValue("00:00:02"), "A"
End Sub
------------------------------------------------------------------
dim k
Sub 时间显示()
	 Dim x
	  
	 If k = 1 Then
    	  k = 0
    	  End
	 End If
	  
	  Range("a1") = Format(Now, "h:mm:ss")
	  Application.OnTime Now + TimeValue("00:00:01"), "时间显示"
	  x = DoEvents
End Sub
 ----------------------------------------
Sub 结束时间显示()
 	k = 1
End Sub

历史上的今天:


欢迎来到菜鸟头头的个人博客
本文章百度已收录,若发现本站有任何侵犯您利益的内容,请及时邮件或留言联系,我会第一时间删除所有相关内容。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: