excel中日期格式的标准化

excel中日期格式的标准化,excel,date,formatting,vba,Excel,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 现在,我通过选择文本到列>分隔符>选项卡>日期来实现所需的结果。但我必须这样做,每次我添加数据到我的数据库,这是每天一次 是否有一个公式,我可以使用或vba代码为我做到这一点 注1-使用格式单元格没有任何作用,因此采用了文本到列的方法 注2-这是我如何将数据从

我在一列中有这样的日期:

01-01-2017
04.2.2017
1-02-2017
2.02.2017
我想将它们标准化,使它们看起来像这样:

01-01-2017
04-02-2017
01-02-2017
02-02-2017
现在,我通过选择文本到列>分隔符>选项卡>日期来实现所需的结果。但我必须这样做,每次我添加数据到我的数据库,这是每天一次

是否有一个公式,我可以使用或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

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

也可以使用下面的VBA例程将文本更改为日期:

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

在带有日期的单元格中,已尝试查找并替换。用/

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


如果可行,可以编写宏来执行此操作

您能显示将日期添加到数据库中的代码吗?应该可以修改此代码,使其添加日期而不是字符串。请参阅更新…..您从中复制的工作表中的日期是存储为文本还是存储为日期?混合,有些是日期,有些是文本,因此我想使用我添加到答案中的代码对其进行标准化。问题是小数点。日期转换可以处理斜杠和破折号,但不能处理小数点。所以我添加了一些东西,在转换之前删除它们。你有没有其他奇怪的字符来分隔日期?