我有一列链接到其他数据的日期列,我很满意他们如何排序。因此,如果不在Excel表格中对数据进行排序,我需要查找该列中最新和最旧的日期。如何使用VBA查找日期列中的最近日期
到目前为止,我已经有了以下代码,这些代码没有那么有用。
Max_date = Application.WorksheetFunction.Max(Columns("X")).Value
MsgBox Max_date
感谢 h,从您的第一行代码
我有一列链接到其他数据的日期列,我很满意他们如何排序。因此,如果不在Excel表格中对数据进行排序,我需要查找该列中最新和最旧的日期。如何使用VBA查找日期列中的最近日期
到目前为止,我已经有了以下代码,这些代码没有那么有用。
Max_date = Application.WorksheetFunction.Max(Columns("X")).Value
MsgBox Max_date
感谢 h,从您的第一行代码
删除 “.value的”。
Max_date = Application.WorksheetFunction.Max(Columns("X"))
MsgBox Max_date
这将返回表示日期在Microsoft Excel日期时间代码中的数字。
要回应Scott Craner的评论,请使用以下内容显示数字的日期格式版本。
Max_date = Application.WorksheetFunction.Max(Columns("X"))
MsgBox cDate(Max_date)
MsgBox CDate(Max_date)会做到这一点。
日期被表示为在Excel中的数字,与典型值周围40000
CDATE该号码转换为VBA日期类型。
因此,有几种方法来处理这个:
首先,你可以在输出时处理它通过使用CDATE():
Max_date = Application.WorksheetFunction.Max(Columns("X"))
MsgBox CDate(Max_date)
秒你可以声明MAX_DATE作为一个日期,它会自动进行切换:
Dim Max_date as Date
Max_date = Application.WorksheetFunction.Max(Columns("X"))
MsgBox Max_date
个人而言,我更喜欢第二个,因为它不会允许首先要输入非日期值。
那么这段代码做或不做的是不正确的? –
摆脱'.value'在最后它不是工作表函数的一部分 –
它给了我一些数字作为输出。但是这些数字与我寻找的日期无关。谢谢Scott。 – Zapata