如何在VBA中使用正则表达式检查特定格式

如何在VBA中使用正则表达式检查特定格式,vba,excel,Vba,Excel,我的excel文件中的日期格式如下:MM/DD/YYYY 我将使用for each循环检查工作表,并按单元格获取值 我想检查当前处理的单元格是否为上述格式,如果是,请将其更改为YYYY-MM-DD(数据库格式) 我可以在VBA中执行此操作吗 提前感谢,不带正则表达式: Sub DateTest() With ActiveCell If IsDate(.Value) And .NumberFormat = "mm/dd/yyyy" Then .Num

我的excel文件中的日期格式如下:MM/DD/YYYY

我将使用for each循环检查工作表,并按单元格获取值

我想检查当前处理的单元格是否为上述格式,如果是,请将其更改为YYYY-MM-DD(数据库格式)

我可以在VBA中执行此操作吗


提前感谢,

不带正则表达式:

Sub DateTest()
    With ActiveCell
        If IsDate(.Value) And .NumberFormat = "mm/dd/yyyy" Then
            .NumberFormat = "yyyy-mm-dd"
        End If
    End With
End Sub
注:

如果值是
字符串
,更改
数字格式
对单元格没有明显影响。

您不需要正则表达式

Option Explicit

Sub ChangeDateFormats()
    Dim thisCell As Range
    For Each thisCell In ActiveSheet.UsedRange
        Debug.Print thisCell.NumberFormat
        If thisCell.NumberFormat = "m/d/yyyy" Then
            thisCell.NumberFormat = "yyyy-mm-dd"
        End If
    Next thisCell
End Sub

这些是真实的日期还是字符串形式的日期?我问这个问题是因为Excel将日期视为数字,所以在单元格中如何查看日期取决于格式,而日期下面有一个数字。要检查日期是否为实际日期而不是日期字符串,假设A2中有日期,则在任何空白单元格中键入公式
=ISNUMBER(A2)
。如果公式返回
True
,则A2包含一个实际日期,否则它是一个日期字符串。