【发布时间】:2021-04-03 17:55:51
【问题描述】:
我一直在尝试对 A1 上的日期进行排序,但它是根据文本而不是值进行排序的
Private Sub sortData()
Worksheets(Me.Combobox1.Value).Range("A1:F1", Range("A1:F1").End(xlDown)).Sort
Key1:=Range("A1"), Order1:=xlAscending, Header:=xlYes
End Sub
【问题讨论】:
-
您所谓的日期实际上是看起来像日期的字符串。这些将与实际日期不同。正确的解决方案是修复您的数据,将其转化为真实日期
-
不,他们没有。如果它们是实际日期,那么您的代码将正常工作。单击单元格 A1,然后查看表达式栏中的值。上面写了什么?
-
我只是复制并粘贴您的 30 个单元格示例并将“A1:F1”修改为“A1:C10”。它按日期正确排序了所有行。
-
完全有可能在单元格中包含格式为 Date 或 General 的文本字符串。请进行@Ken White 建议的测试:选择任何日期并将其单元格格式化为 Number。如果你看到一个数字,那就是一个真实的日期。如果您继续看到相同的“日期”,那就是假的。
-
@KenWhite 是对的;只要没有更正或转换这些日期/时间,就无法将文本日期排序为日期/时间,下面的两个“答案”也不会帮助您。