我有一个宏,它使用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岁
答案 0 :(得分:0)
即使控制面板设置为正确的区域设置或语言,开发人员也可能来自处理来自不同国家/地区的项目的完全不同的位置。
很高兴看到所有专家的不同观点。要在确定日期格式时覆盖OS或Excel Intelligence,最好使用“= Text”命令对其进行格式化。