2017-06-03 53 views
-1

您能否就VBA腳本提供建議,以便在電子郵件中匹配以下日期格式。在字符串中匹配第二個日期

開始:2017年6月23日00:00:00(CEST)2017年6月22日22:00(GMT)

注:還有另外一個日期。我只需要匹配粗體就可以將它導出到Excel中。

Set SD = CreateObject("vbscript.regexp") 

With SD.Pattern = "((Start:*\s*\s*[\d-\.]*\s*\s*\s*[\d-\.]*))" 
    .Global = False 
    .IgnoreCase = False 
End With 

If SD.test(sText) Then 
    Set D1 = SD.Execute(sText) 
    For Each D In D1 
     vText1 = Trim(D.SubMatches(1)) 
    Next 
End If 
xlSheet.Range("C" & rCount) = vText1 
+1

所以你沒有嘗試過其他任何東西? –

+0

你好,我如何添加我的代碼?它太久請指教? –

+0

看到[mcve]和[問] –

回答

0

使用這個表達式:[0-9]{2}\.[0-9]{2}\.[0-9]{4}\s[0-9]{2}\:[0-9]{2}(?=\s\(GMT\))

這裏是一個工作示例。 RegexStorm.net

第一部分是數字集,最後一部分表示它後面必須跟一個空格和(GMT)。

這裏是一個VB.Net例子的鏈接來獲取日期/時間字符串。您需要將其轉換爲VBA。

.Net Fiddle

+0

非常感謝,但如何獲得如下第二次結束日期: 開始:23.06.2017 00:00:00(CEST)22.06.2017 22:00(GMT) 結束於:23.06.2017 05:00:00 (CEST)23.06.2017 03:00(GMT) 讚賞:) –

+0

它將捕獲日期/時間。您將需要訪問捕獲組。會有兩個。點擊更新後的RegexStorm鏈接,然後點擊底部的表格標籤,查看它是如何獲得兩個匹配的。 – 2017-06-03 16:16:07

+0

再次感謝,抱歉,但我仍然可以得到1只請參閱代碼: 如果SD.test(STEXT)然後 集D1 = SD.Execute(STEXT) 對於每個d在D1 vText1 = TRIM(d .SubMatches(0)) vText2 = TRIM(D.SubMatches(1)) 接着 結束如果 xlSheet.Range( 「C」 &Rcount時)= vText1 xlSheet.Range( 「d」 &Rcount時)= vText2 –

相關問題