指定大量输入数据的日期格式

时间:2013-08-08 14:53:02

标签: vba excel-vba excel

我有一个输入电子表格,需要按日期排序。日期的当前格式是英国格式(年/月/日)但我需要它在yyyy-mm-dd(实际上我没有,我只需要对它进行排序,这种格式是最简单的方式排序)。这一切都需要在VBA中完成,因为它是一个更大的项目的一部分,允许一次数据整理。另一个问题是输入表可能非常大(150,000多行)。因此,虽然我可以解析每一行数据并将其更改为我需要的方式,但这可能会非常慢,并且不是一种选择。

目前我正在使用这段代码将日期格式化为yyyy-mm-dd:

inputGADRSheet.Columns(7).NumberFormat = "yyyy-mm-dd"

但是,Excel超出了我的要求,并假设该列的日期格式最初为美国格式(mm / dd / yyyy),这会混淆一切,列中一半的值不符合要求(天数)在12日以上)所以他们根本没有格式化。有没有办法告诉Excel当前数据的格式是什么?这样它就不会假设它采用美国日期格式......

解决方案是将我的Excel区域更改为英国。我认为这可以使用VBA完成,但似乎有风险......

1 个答案:

答案 0 :(得分:1)

如果您的数据已经在Excel列中,则无法重新解释这些值:Excel日期值是(内部)数字,1代表1900-01-01。在Excel(错误)解释数据后,无法回复。

问题是:您从哪里获得输入数据表?如果正确输入日期,则可以毫无问题地重新格式化,并且不会影响排序(仅取决于日期的数值)。如果您的数据来自文本文件(可能是.csv-kind),请务必将ii作为文本阅读并使用Excel工作表函数或VBA来解释这些值。