【问题标题】:Date entered via VBA is not picked up and grouped as date by the autofilter通过 VBA 输入的日期不会被自动过滤器拾取并分组为日期
【发布时间】:2020-06-16 16:45:24
【问题描述】:

所以,我使用的是 excel 2016。 我有一个带有日期列的表。 我通过 VBA 填充该表,如下所示:

Dim DataTable As ListObject
Dim DataRow As Range

...

For Each Entry in Entries
DataTable.Resize DataTable.Range.Resize(DataTable.Range.Rows.Count + 1, DataTable.Range.Columns.Count)
Set DataRow = DataTable.ListRows(DataTable.ListRows.Count).Range
DataRow.Cells(1, 1).Value = Entry
DataRow.Cells(1, 1).NumberFormatLocal = "TT.MM.JJJJ"
DataRow.Cells(1, 1).HorizontalAlignment = xlRight
Next

'Entries' 是字符串格式的日期列表。

一切看起来都很完美,直到我注意到该列的自动过滤器不会对通过 VBA 添加的日期进行分组。 该表具有手动添加日期的现有行,这些行正确分组。 当我检查添加的单元格的格式时,它设置为“TT.MM.JJJJ”,就像所有其他单元格一样。 如果我进入任何一个添加的单元格并按 Enter,则该单元格的值也会被正确分组。

我迷路了,这里出了什么问题,我该如何在 VBA 中解决这个问题:(

【问题讨论】:

    标签: excel vba date grouping autofilter


    【解决方案1】:

    好吧,毕竟解决方案相当简单,

    不能以这种方式将日期作为纯字符串输入 - 我必须将其拆分并通过 DateSerial 函数进行转换。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-04-23
      • 1970-01-01
      • 2016-07-17
      • 2021-07-01
      • 2015-11-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多