我从数据透视表中提取了一组日期(可以直接从PT访问,也可以将其复制到新工作表中 - 我也不会讨论)我需要最早和最晚的日期例如
预定日期
17年1月1日
17年5月8日
16年8月11日
16年3月12日
...
所以我想要的是VBA告诉我,最早的日期是08/11/16,最新的是05/08/17(这是一个循环通过不同评估的不同版本的宏的一部分,所以a手动修复是不够的,模型是如此之大,以至于工作表中的数组公式将使其变得非常慢。
到目前为止,我已经在最早的日期尝试了以下内容:
Dim AllDates As Variant
Dim NumberDates As Integer
Dim Earliest As Date, Latest As Date
Set AllDates = ThisWorkbook.Sheets("Pivot Table 5 - To Use").Range("A4:A203")
'Attempt 1
Earliest = WorksheetFunction.Min(AllDates)
'Attempt 2
Earliest = Format(Application.Min(AllDates), "dd/mm/yyyy")
'Attempt 3
Earliest = Format(WorksheetFunction.Min(AllDates), "dd/mm/yyyy")
'Attempt 4
Debug.Print CDate(Application.Max(AllDates))
每次尝试都会导致“00:00:00”,所以我假设我实际上正在使用Date值(我加倍检查并确保工作表被格式化为正确的日期格式)但除此之外我完全被难倒
答案 0 :(得分:0)
这对我有用:
Sub test()
Dim Earliest As Date
Dim Latest As Date
AllDates = "$A$2:$A$204"
Earliest = Application.WorksheetFunction.Min(ActiveSheet.Range(AllDates))
Latest = Application.WorksheetFunction.Max(ActiveSheet.Range(AllDates))
MsgBox Earliest & Chr(13) & Latest
End Sub