【问题标题】:standardising date format in excel在excel中标准化日期格式
【发布时间】:2018-01-03 00:59:01
【问题描述】:

我在单个列中有如下所示的日期:

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 - 使用“格式化单元格”没有任何作用,因此使用“文本到列”方法。

注意 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

【问题讨论】:

  • 您能显示将日期添加到数据库的代码吗?应该可以修改此代码,使其添加日期而不是字符串。
  • 查看更新.....
  • 您要复制的工作表中的日期是存储为文本还是日期?
  • 混合,有些是日期有些是文本,因此我想标准化它们
  • 使用我添加到答案中的代码。

标签: excel date formatting vba


【解决方案1】:

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

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

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

【讨论】:

  • 问题是小数点。日期转换可以处理斜线和破折号,但不能处理小数点。所以我在转换之前添加了一些东西来删除它们。日期之间还有其他奇怪的字符吗?
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 2014-12-07
    • 2022-07-21
    • 1970-01-01
    • 2014-08-17
    相关资源
    最近更新 更多