在excel中标准化日期格式

时间:2017-07-27 10:38:10

标签: excel excel-vba date formatting vba

我的日期在一列中看起来像这样:

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

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

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

现在我通过选择"Text to Columns">"Delimited">Tab">"Date"来达到预期的效果。但每次我将数据添加到我的数据库(每天一次)时,我必须这样做!

我可以使用公式或vba代码为我做这个吗?

注1 - 使用"格式化单元格"什么也没做,因此" Text to Columns"方法

注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

2 个答案:

答案 0 :(得分:0)

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

您还可以使用以下VBA例程将文本更改为日期:

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

答案 1 :(得分:-1)

在具有日期的单元格中试图查找&更换 ”。”用“/”?

然后确保具有日期的列格式为:dd-mm-yyyy; @

如果有效,可以编写一个宏来执行此操作。