Excel日期和时间转换

锡坎达·巴赫特·西德

希望您一切都好,能否请您提及我该如何转换

10.28.2014 16:00:00 进入

10/28/2014 4:00 PM.

我想转换整个列。此外,如果您能提到VBA代码,那将有很多帮助。


提到的excel文件是通过从客户导入csv文件创建的。我的国家是沙特阿拉伯,它具有不同的DateTime格式d/m/y,我还需要将已处理的Excel文件导入Access数据库。

谢谢

伏伊泰克·多纳尔(Vojtech Dohnal)

这是VBA中的代码段,可将阿塞拜疆日期格式转换m.d.y为ar-SA日期格式d/m/y运行FixDates带有参数“ A”的应将文本转换为A列中所有单元格m.d.yy hh:mm:ss的日期值d/m/yyyy hh:mm:ss。它使用VBScript类中的RegExp。

Option Explicit

Sub ConvertDates()
   Call FixDates("A")
End Sub

Sub FixDates(column As String)
    Dim cell As Range
    Dim lastRow As Long

    lastRow = Range(column & Rows.Count).End(xlUp).Row
    For Each cell In Range(column & "1:" & column & lastRow)
        If InStr(cell.Value, ".") <> 0 Then
          cell.Value = DateValue(RegexReplace(cell.Value, _
          "(\d{1,2})\.(\d{1,2})\.(\d{2,4})", "$2/$1/$3"))
        End If
        cell.NumberFormat = "d/m/yyyy h:mm AM/PM"
    Next    
End Sub

Function RegexReplace(ByVal text As String, _
                      ByVal replace_what As String, _
                      ByVal replace_with As String) As String

    Dim RE As Object
    Set RE = CreateObject("vbscript.regexp")
    RE.Pattern = replace_what
    RE.Global = True
    RegexReplace = RE.Replace(text, replace_with)
End Function

如果您需要其他格式,只需更改一行,如下所示:

 cell.NumberFormat = "d/m/yyyy h AM/PM"

我已经修改并使用了这个答案这个答案

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章