学习日志 全民一起VBA提高篇 第四回 日期类型穿梭岁月 时间函数算尽光阴

学习日志

全民一起VBA提高篇

第四回 日期类型穿梭岁月 时间函数算尽光阴

相关知识点
一、获取当前系统时间
   1、 date() 或date  可获得日期 如 2019/2/1
   2、 time() 或time  可获得时间 如 16:21:30
   3、 now()  或now   如 2019/2/1 16:21:30
二、时间数据解析
    year()、month()、day()、weekday()、hour()、minute()、second()
三、时间计算
    1、计算两个日期数据之间的时间差
        datediff(单位,起始时间,截止时间)
        单位:
            "yyyy"、"m"、"q"季度、"d"日、"h"小时、"n"分钟、"s"秒
            "w"  周(按实际天数计算,不足7天为0周)
            "ww" 周(按跨越周日数计算,只要相隔一个周日即为一周)

        如:datediff("yyyy",#8/3/1996#,#3/5/2003#)
    2、计算一个时间点加上指定时间后的新的时间点
        dateadd(单位,跨越长度,起始时间)
        单位:
            "yyyy"、"m"、"q"季度、"d"日、"h"小时、"n"分钟、"s"秒
            "w"  周内第几日,一般情况下运行结果与使用 d 相同
            "ww" 周

        如:dateadd("d",38,#3/5/2003#)  跨越时间可正可负
基本示例
option Explicit
sub datedemo()
dim d as date,a as long
	d=#1/12/2019 12:20:25#
	a=year(d)
	msgbox a
End sub
'vba 中date的表示范围 100年1月1日0点0分0秒-9999年12月31日23点59分59秒
提取日期
Option Explicit
Sub deadmonth()
    Dim d As Date, i&
    i = 3
    Do While Trim(Cells(i, 4)) <> ""
        d = Cells(i, 4)
        Cells(i, 5) = Month(d)
        i = i + 1
    Loop
End Sub
'或者
Sub deadmonth2()
    Dim i&
    i = 3
    Do While Trim(Cells(i, 4)) <> ""
        Cells(i, 5) = Month(Cells(i, 4))
        i = i + 1
    Loop
End Sub
日期数据本质是 double类型的数字
Option Explicit
Sub datetest()
    Dim d As Date
    d = 1           '0代表1899年12月30日0时0分0秒
    msgbox d        '1意为过了一天 即1899年12月31日0时0分0秒       
End Sub
未来一周生日提醒
Option Explicit
Sub checkbrithday()
    
    Dim ld As Date, today As Date, i%, j%, wb As Worksheet
    
    today = Date
    
    Sheets.Add(after:=Sheets("4")).name = "未来一周生日提醒"
    Set wb = ActiveSheet
    
    For j = 0 To 6
    
        ld = today + j
        
        i = 3
        
        Do While Trim(Cells(i, 1)) <> ""
        
            If Month(ld) = Month(Cells(i, 2)) And Day(ld) = Day(Cells(i, 2)) Then
            
                MsgBox ld & "是" & Cells(i, 1) & "的生日"
                
                wb.Cells(i, j + 1) = Cells(i, 1)
            
            End If
            
            i = i + 1
        Loop
        wb.Cells(2, j + 1) = "未来" & j & "天"
        Next j
End Sub
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值