我有一组从数据透视表中提取的日期(可以直接从 PT 访问,也可以将其复制到新工作表中 - 我对这两种方式都没有大惊小怪)并且我需要最早和最晚的日期例如
预定日期
17 年 1 月 1 日
17 年 5 月 8 日
2016 年 8 月 11 日
16 年 3 月 12 日
...
所以我只想让 VBA 告诉我最早的日期是 2016 年 8 月 11 日,最晚的日期是 17 年 8 月 5 日(这是循环遍历不同评估的不同版本的宏的一部分,所以手动修复是不够的,而且模型太大以至于工作表中的数组公式会使它慢得离谱)。
到目前为止,我已经尝试了以下最早日期:
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”,所以我假设我实际上是在使用日期值(我仔细检查并确保工作表的格式设置为正确的日期格式)但除此之外我完全被难住了.
最佳答案
这对我有用:
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
关于vba - VBA/Excel 中的最早日期为 00 :00:00,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49795880/