排序英式日期

时间:2014-05-08 13:25:34

标签: excel sorting date excel-vba vba

我有一个宏,它使用A列按升序排序一组列,其中包含英文格式的日期和时间。表格中的每个数据选择涵盖两天。这很好,工作正常,直到月份变化,此时30/04/2014被视为比01/05/2014更大的值。此时,01/05/2014行被置于顶部,30/04/2014排序到底部,与我想要的相反。

以下是进行排序的代码片段。

With Range("AA1")
        .Value = 1
        .Copy

        'Modified the value conversion section to avoid changing the date to an american format

        With Range("B1:Z" & WriteToRow - 1)
            .PasteSpecial Paste:=xlPasteValues, Operation:=xlMultiply
        End With
        With Range("A1:Z" & WriteToRow - 1)
            .Sort key1:=Range("A2"), order1:=xlAscending, Header:=xlYes
            .EntireColumn.AutoFit
        End With

        .Value = ""

任何人都可以帮忙吗?我原以为我可以添加 IF语句来说明A2的前2个字符是01然后排序降序但是我需要另一个IF来说如果前两个字符是02排序< strong>再次升序,以便当文件在每个月的第1和第2个之间处理时,订单是正确的。这对我来说似乎有点乱,所以我想我会看到一个比我聪明的人有更清洁的解决方案。

谢谢,7岁

1 个答案:

答案 0 :(得分:0)

即使控制面板设置为正确的区域设置或语言,开发人员也可能来自处理来自不同国家/地区的项目的完全不同的位置。

很高兴看到所有专家的不同观点。要在确定日期格式时覆盖OS或Excel Intelligence,最好使用“= Text”命令对其进行格式化。