排序英式日期

标签 sorting date excel vba

我有一个宏,它使用列 A 以升序对一组列进行排序,列 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 = ""

有人能帮忙吗?我以为我可以添加 中频声明说如果 A2 的前 2 个字符是 01 则降序排序,但是我需要另一个 IF 来说明如果前两个字符是 02 排序 再次升序,以便在每个月的 1 日和 2 日之间处理文件时,顺序是正确的。这对我来说似乎有点乱,所以我想我会看看是否有人比我聪明得多,有一个更清洁的解决方案。

谢谢,7

最佳答案

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

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

关于排序英式日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23543099/

相关文章:

javascript - 根据日期显示/隐藏 div,Dreamweaver 错误?

vba - 如何从.net代码检查Excel应用程序是否启用了 "Trust access to the VBA project object model"?

c# - 防止数据绑定(bind) DataGridView 在编辑时进行排序

java - 如何实现归并排序?

Java Collections.sort Comparator修改私有(private)对象ID?

eclipse - 按可见性对 Eclipse 中的成员进行排序,无需按字母顺序排序

android - Android中的SQLite Datediff替代品与排序

Php 无法通过 HTML 表单更新 MySQL 表中的日期

excel =SIN(MOD($B5;23)/23*2*PI()) 错误

excel - 如何编辑 Excel 2011 VBA 按钮而不是单击它们