常见的三个获取系统时间的方式:

  1. Date 获取当前系统时间的年月日
  2. Time 获取当前系统时间的时分秒
  3. Now 获取当前系统时间的年月日和时分秒
Public Sub main()
  Debug.Print Date '结果:2022/7/27
  Debug.Print Time '结果:15:00:25
  Debug.Print Now '结果:2022/7/27 15:00:25
End Sub

2. 更细力度的提取时间

  1. 从日期中提取年 Year(时间)
  2. 从日期中提取月 Month(时间)
  3. 从日期中提取日 Day(时间)
  4. 从日期中提取时 Hour(时间)
  5. 从日期中提取分 VBA.Minute(时间)
  6. 从日期中提取秒 Second(时间)

Public Sub main()
  Debug.Print Year(Now) '结果:2022
  Debug.Print Month(Now) '结果:7
  Debug.Print Day(Now) '结果:27
  Debug.Print Hour(Now) '结果:15
  Debug.Print VBA.Minute(Now) '结果:4
  Debug.Print Second(Now) '结果:20
End Sub

3. 格式化显示日期

格式化日期显示的语法为:Format(时间, 格式),常见格式有:

格式描述
yyyy-mm-dd年月日
yyyy年mm月dd日中文年月日
yyyy年mm月dd日 h:mm:ss中文年月日时分秒
d-mmm-yy英文月份简写
d-mmmm-yy英文月份
aaaa中文星期
ddd英文星期简写
dddd英文星期
Public Sub main()
  Debug.Print Format(Now, "yyyy-mm-dd") '结果:2022-07-27
  Debug.Print Format(Now, "yyyy年mm月dd日") '结果:2022年07月27日
  Debug.Print Format(Now, "yyyy年mm月dd日 h:mm:ss") '结果:2022年07月27日 15:13:31
  Debug.Print Format(Now, "d-mmm-yy") '结果:27-Jul-22
  Debug.Print Format(Now, "d-mmmm-yy") '结果:27-July-22
  Debug.Print Format(Now, "aaaa") '结果:星期三
  Debug.Print Format(Now, "ddd") '结果:Wed
  Debug.Print Format(Now, "dddd") '结果:Wednesday
End Sub

3. 日期差计算

日期差计算语法为:DateDiff(时间单位, 时间, 比较的时间)

Public Sub main()
  Debug.Print DateDiff("d", "2022-07-27", "2022-07-28") '相差几天 结果:1
  Debug.Print DateDiff("m", "2022-07-28", "2022-08-28") '相差几月 结果:1
  Debug.Print DateDiff("yyyy", "2022-07-28", "2023-07-28") '相差几年 结果:1
  Debug.Print DateDiff("q", "2022-07-28", "2022-10-01") '相差几个季度 结果:1
  Debug.Print DateDiff("w", "2022-07-28", "2022-08-04") '相差几个七天 结果:1
  Debug.Print DateDiff("h", "2022-07-28 15:00", "2022-07-28 16:00") '相差几小时 结果:1
  Debug.Print DateDiff("n", "2022-07-28 15:01", "2022-07-28 15:02") '相差几分钟 结果:1
  Debug.Print DateDiff("s", "2022-07-28 15:01:00", "2022-07-28 15:01:01") '相差几秒钟 结果:1
End Sub

4. 日期加减

日期加减语法为:DateAdd(单位, 加减的时间, 时间),加减的时间为正数就是加,为负数就是减:

Public Sub main()
  Debug.Print VBA.DateAdd("d", 10, "2022/07/27 16:00:00") '加十天 结果:2022/8/6 16:00:00
  Debug.Print VBA.DateAdd("m", 10, "2022/07/27 16:00:00") '加十个月 结果:2023/5/27 16:00:00
  Debug.Print VBA.DateAdd("yyyy", 10, "2022/07/27 16:00:00")  '加十年 结果:2032/7/27 16:00:00
  Debug.Print VBA.DateAdd("yyyy", -10, "2022/07/27 16:00:00") '减十天 结果:2012/7/27 16:00:00
  Debug.Print VBA.DateAdd("h", 10, "2022/07/27 16:00:00") '加十小时 结果:2022/7/28 2:00:00
  Debug.Print VBA.DateAdd("n", 10, "2022/07/27 16:00:00") '加十分钟 结果:2022/7/27 16:10:00
  Debug.Print VBA.DateAdd("s", 10, "2022/07/27 16:00:00") '加十秒钟 结果:2022/7/27 16:00:10
End Sub

5. 时间序列化

Public Sub main()
  Debug.Print VBA.DateSerial(2022, 7, 27) '结果:2022/7/27
  Debug.Print VBA.TimeSerial(16, 1, 2) '结果:16:01:02
End Sub
 ActiveCell.FormulaR1C1 = "=year"
 Range("B1").Select
 ActiveCell.FormulaR1C1 = "=YEAR(RC[-1])"
很简单,直接用转换函数就可以了,例如:CDate("2012-12-31")
2、日期之间的天数
用datediff函数,注意,工作表单元格中用的函数名称是datedif,少了一个f,而且参数顺序也不一样。例如:
dt = Cells(2, 1)     ' 单元格内容:2013-1-1 09:35:08
dd = DateDiff("D",
                                    第一,vba日期和时间函数的基本用法
  Excelvba日期函数和时间函数分别是DATE和TIME。
  VBA提供了三个无参数函数:Date、Time、Now,分别返回当前电脑系统的日期、时间、日期+时间。
  下面的代码我们以三个消息框来结合日期和时间函数,分别提示当前日期、时间。
Sub vba时间和日期函数()
    MsgBox Date
    MsgBox Tim
                                    函数来获取当前日期和时间。在这个示例中,我们首先声明了一个名为。在这个示例中,我们首先声明了一个名为。这将返回当前日期和时间。这将返回当前日期和时间。对象,然后将其赋值给变量。对象,然后将其赋值给变量。
v_date = Date  ' 今天,格式为:yyyy-MM-dd
v_time = Now   ' 此时,格式为:yyyy-MM-dd HH:mm:ss
v_date2 = #"2021-06-01" '指定时间
v_date3 = CDate("2021-06-01")
日期格式化
Format(Date, "yyyy-MM-dd")
日期处理
对日期进行处理,得到想要的目标日期
today = Date
yesterday = today - 1
                                    获取当前的系统时间在【A1】中,系统中的年在[B1],月在【C1】日在【D1】Sub D()ActiveCell.FormulaR1C1 = "=NOW()"    Range("B1").Select    ActiveCell.FormulaR1C1 = "=year"    Range("B1").Select    ActiveCell.FormulaR1C1 = "=YEAR(RC[-1...
                                    有时候,我们可能需要从这些日期值中提取出具体的日期,例如提取出年、月、日等信息,以进行进一步的处理或分析。本文将介绍如何使用编程的方法从 Microsoft Excel 中的日期值中提取出具体的日期信息。无论是使用 Excel 的内置函数还是编程语言,我们都可以从 Microsoft Excel 中的日期值中提取出具体的日期信息。使用内置函数适合简单的日期提取需求,而使用编程语言则更适合复杂的操作或进一步的处理。根据具体的需求,选择合适的方法来提取日期值,并根据需要进行进一步的处理或分析。
	now() 包含完整的日期+时间,date是日期和 time() 是时间
	如果把时间转为 double 类型,就可以看出
	整数部分就是 date ,而小数部分就是 time()
Sub daojishi11()
Debug.Print Now()
Debug.P...
                                    VBA中取当前日期的函数是Date,当前时间的函数是Time,当前日期和时间一起取是Now。日期转换成年月日的函数分别是:Year、Month、Day,参数可以用Date或Now取出的值。时间转换成时分秒的函数分别是:Hour、Minute、Second,参数可以用Time或Now取出的值。
  MsgBox "当前时间:" & Now & Chr(10) & _