[英]Excel, change date format from Fri Jun 30 00:00:00 EDT 2017 to YYYYMMDD in cell
[英]Excel VBA - Formatting “Fri Feb 27 08:45:00 CST 2015” into a usable date
我目前正在建立用于报告目的的数据库。 原始数据将来自将csv发送到共享位置的自动数据源。 我有一些流程,可以将其取出并获取数据,然后将其放置在共享位置,然后有一个excel文档,该文档具有与数据的连接设置,然后将连接至数据并在打开工作簿时刷新。 此过程已完成,但是我遇到的问题是原始数据源正在导出csv,它正在将日期格式设置为“ Fri Feb 27 08:45:00 CST 2015”(例如)。 我需要将此格式设置为“ MM / dd / yyyy hh:mm:ss”。目前,更改供应商的输出格式不是可行的选择。
任何帮助将不胜感激,老实说,我什至不知道从哪里开始,所以我没有代码可发布。 我会说这将在大量行上完成。 例如,可能是B2:B10000
不考虑几个时区:
Sub convertDate()
Dim str As String
Dim arr() As String
Dim mm As String
Dim convDate As String
str = "Fri Feb 27 08:45:00 CST 2015"
arr() = Split(str)
Select Case arr(1)
Case "Jan": mm = "01"
Case "Feb": mm = "02"
Case "Mar": mm = "03"
Case "Apr": mm = "04"
Case "May": mm = "05"
Case "Jun": mm = "06"
Case "Jul": mm = "07"
Case "Aug": mm = "08"
Case "Sep": mm = "09"
Case "Oct": mm = "10"
Case "Nov": mm = "11"
Case "Dec": mm = "12"
End Select
convDate = mm & "/" & arr(2) & "/" & arr(5) & " " & arr(3)
MsgBox (convDate)
End Sub
假设要获取的格式始终相同,则可以使用正则表达式,然后将其重新构建为Date
,然后对其进行格式化:
'Requires reference to Microsoft VBScript Regular Expressions
Sub ParseDateExample()
testValue = "Fri Feb 27 08:45:00 CST 2015"
With New RegExp
.Pattern = ".+\s(.+)\s(\d{1,2})\s(\d{2}:\d{2}:\d{2})\s.+(\d{4})"
If .Test(testValue) Then
Dim matches As Object
Set matches = .Execute(testValue)
Dim temp As String
temp = matches(0).SubMatches(0) & "/" & matches(0).SubMatches(1) & "/" & _
matches(0).SubMatches(3) & " " & matches(0).SubMatches(2)
If IsDate(temp) Then
Debug.Print Format$(CDate(temp), "mm/dd/yyyy hh:nn:ss")
End If
End If
End With
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.