簡體   English   中英

將 MMM-DD-YYYY 文本轉換為日期

[英]Convert MMM-DD-YYYY text to date

我有一組數據只能作為MMM-DD-YYYY.提取MMM-DD-YYYY. 我想將其轉換為日期(MM/DD/YYYY 格式)以與另一組數據進行查找。

我錄制了一個宏來簡單地分別用它們各自的數字替換月份,但我知道必須有更好的方法來做到這一點。 下面是我的

當前代碼:

With ws1.Cells
.Replace What:="jan-", Replacement:="01-", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
.Replace What:="feb-", Replacement:="02-", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
.Replace What:="mar-", Replacement:="03-", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
.Replace What:="apr-", Replacement:="04-", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
.Replace What:="may-", Replacement:="05-", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
.Replace What:="jun-", Replacement:="06-", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
.Replace What:="jul-", Replacement:="07-", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
.Replace What:="aug-", Replacement:="08-", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
.Replace What:="sep-", Replacement:="09-", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
.Replace What:="oct-", Replacement:="10-", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
.Replace What:="nov-", Replacement:="11-", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
.Replace What:="dec-", Replacement:="12-", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End With

這會將您的文本字符串轉換為活動單元格的真實日期:

Sub datefix()
    Dim s As String
    s = ActiveCell.Value
    arr = Split(s, "-")
    ActiveCell.Value = arr(1) & " " & arr(0) & " " & arr(2)
End Sub

您可以將其格式化或循環播放以適應您的需求。

(我正在使用美國語言環境)

編輯#1:

使用您想要的格式:

Sub datefix()
    Dim s As String
    s = ActiveCell.Value
    arr = Split(s, "-")
    ActiveCell.Value = arr(1) & " " & arr(0) & " " & arr(2)
    ActiveCell.NumberFormat = "mm/dd/yyyy"
End Sub

前:

在此處輸入圖片說明

之后:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM