在Excel中标准化date格式

我有一个单一的列中看起来像这样的date:

01-01-2017 04.2.2017 1-02-2017 2.02.2017 

我想将它们标准化,使它们看起来像这样:

 01-01-2017 04-02-2017 01-02-2017 02-02-2017 

现在我可以通过select"Text to Columns">"Delimited">Tab">"Date"达到预期的效果,但是每次向我的数据库添加数据时,我都必须这样做。

有没有一个公式我可以使用或vba代码来为我做这个?

注1 – 使用“格式单元格”没有做任何事情,因此“文本到列”的方法。

注2 – 这是我如何复制和粘贴从一个工作簿到另一个数据…

 'copy range from target workbook vDB = wbTarget.Sheets(Sheet.Name).Range("b3:i102") 'paste the data and then add a column with the demo "TOTAL" next to it sht1.Range("a" & Rows.Count).End(xlUp)(2).Resize(UBound(vDB, 1), UBound(vDB, 2)) = vDB 

如果格式单元格不工作,可能是因为它们存储为文本而不是date。 如果您将列更改为date格式(您可能需要复制并粘贴数据(粘贴值)),则应该修复它。

您还可以使用下面的VBA例程将文本更改为date:

 Dim c As Range For Each c In ActiveSheet.UsedRange.columns("A").Cells c.Value = DateValue(Replace(c.Value, ".", "/")) Next c 

在与date单元格试图查找和replace“。” 用“/”?

然后确保包含date的列格式为:dd-mm-yyyy; @

可以写一个macros来做到这一点,如果它的工作。