首页 > 解决方案 > 如何对包含具有一般格式的日期的列进行查找和替换?

问题描述

我一直在尝试用 VBA 将我的 excel 电子表格中的所有“-”替换为“/”,但它没有按照我想要的方式工作。请发送帮助:')

问题:包含格式为 00-00-0000 的日期的单元格更改为 00.00.0000,而不是所需的 00/00/0000 格式。即使我使用 Excel 查找和替换功能手动执行此操作,结果也是相同的。

有关日期单元格的一些信息:

代码:

Sub FindReplace()

Dim X, Y As Range

Set X = Range("A2").CurrentRegion

  For Each Y In X.Cells
      Y = Replace(Y, "-", "/")
  Next Y

End Sub

感谢您阅读:)

标签: excelvbadatereplace

解决方案


假设您的原始数据也采用 DD.MM.YYYY 格式,我编写了以下子例程:

Sub FindReplace()

    Dim RngRange01 As Range
    Dim RngTarget As Range
    
    Set RngRange01 = Range("A2").CurrentRegion
    
    For Each RngTarget In RngRange01
        RngTarget.Value = DateSerial(Right(RngTarget.Value, 4), Mid(RngTarget.Value, 4, 2), Left(RngTarget.Value, 2))
    Next RngTarget

End Sub

我已经在一个用点而不是斜线写的日期范围内对其进行了测试,它似乎对我有用。

额外提示:我不会使用单个字母来标识变量。很难替换它们并跟踪它们。至少 3 个您通常在其余代码中找不到的字母要好得多。类似xyzorsss或的东西qweRng如果您添加一个小标签来记住它们是什么类型的变量(例如范围或Byt字节或Dbl双精度),那就更好了。


推荐阅读