2016-04-13 272 views
0

我有一列链接到其他数据的日期列,我很满意他们如何排序。因此,如果不在Excel表格中对数据进行排序,我需要查找该列中最新和最旧的日期。如何使用VBA查找日期列中的最近日期

到目前为止,我已经有了以下代码,这些代码没有那么有用。

Max_date = Application.WorksheetFunction.Max(Columns("X")).Value 

MsgBox Max_date 

感谢 h,从您的第一行代码

+0

那么这段代码做或不做的是不正确的? –

+1

摆脱'.value'在最后它不是工作表函数的一部分 –

+0

它给了我一些数字作为输出。但是这些数字与我寻找的日期无关。谢谢Scott。 – Zapata

回答

1

删除 “.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) 
1

MsgBox CDate(Max_date)会做到这一点。

日期被表示为在Excel中的数字,与典型值周围40000

CDATE该号码转换为VBA日期类型。

2

因此,有几种方法来处理这个:

首先,你可以在输出时处理它通过使用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 

个人而言,我更喜欢第二个,因为它不会允许首先要输入非日期值。