Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用VBA在日期列中查找最近的日期_Vba_Date_Max - Fatal编程技术网

如何使用VBA在日期列中查找最近的日期

如何使用VBA在日期列中查找最近的日期,vba,date,max,Vba,Date,Max,我有一列日期链接到其他数据,我很高兴它们是如何排序的。因此,不必对excel表中的数据进行排序,我需要在该列中查找最新和最旧的日期 到目前为止,我已经有了以下代码,这些代码并没有太大帮助 Max_date = Application.WorksheetFunction.Max(Columns("X")).Value MsgBox Max_date 谢谢 H从第一行代码中删除.value Max_date = Application.WorksheetFunction.Max(Columns(

我有一列日期链接到其他数据,我很高兴它们是如何排序的。因此,不必对excel表中的数据进行排序,我需要在该列中查找最新和最旧的日期

到目前为止,我已经有了以下代码,这些代码并没有太大帮助

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)

从第一行代码中删除.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 CDateMax_date将执行此操作

日期在Excel中以数字表示,典型值约为40000


CDate将该数字转换为VBA日期类型。

MsgBox CDateMax\U date将执行此操作

日期在Excel中以数字表示,典型值约为40000


CDate将该数字转换为VBA日期类型。

因此有两种方法可以解决此问题:

首先,您可以在输出时使用CDate处理它:

Max_date = Application.WorksheetFunction.Max(Columns("X"))
MsgBox CDate(Max_date)
其次,您可以将Max_日期声明为日期,它将自动进行切换:

Dim Max_date as Date
Max_date = Application.WorksheetFunction.Max(Columns("X"))
MsgBox Max_date

就我个人而言,我更喜欢第二种方法,因为它不允许在第一个位置输入非日期值。

因此有两种方法可以解决这个问题:

首先,您可以在输出时使用CDate处理它:

Max_date = Application.WorksheetFunction.Max(Columns("X"))
MsgBox CDate(Max_date)
其次,您可以将Max_日期声明为日期,它将自动进行切换:

Dim Max_date as Date
Max_date = Application.WorksheetFunction.Max(Columns("X"))
MsgBox Max_date

就我个人而言,我更喜欢第二个,因为它不允许在第一个位置输入非日期值。

那么这段代码做什么或不做什么是不正确的?去掉结尾处的值。它不是工作表函数的一部分。它给我一些数字作为输出。但是这些数字与我要找的日期无关。。谢谢,斯科特。电话号码是42056吗?如果是,则为日期的数字形式。请尝试msgbox Cdatemax_date。那么这段代码做什么或不做什么是不正确的?请去掉结尾的.value。它不是工作表函数的一部分。它会给我一些数字作为输出。但是这些数字与我要找的日期无关。。谢谢,斯科特。电话号码是42056吗?如果是,则为日期的数字形式。请尝试msgbox Cdatemax_date