2017-08-24 91 views
-1

我正在尋找一種方法將字符串轉換爲VBA中的日期數據類型。我可以使用CDate()函數實現此目的,但它使用自己的隱式算法來解析字符串,我想指定自己的格式來區分「DD/MM/YY」和「MM/DD/YY」 , 例如。VBA:從特定格式的字符串讀取日期

請注意,與Visual Basic不同,VBA沒有DateTime.TryParseExact函數。

ADD:由於一些答案的建議,我可以寫我自己的解析器。如果沒有內置的解決方案,這將是我的選擇。

+0

假設你的意思是'CVDate()'你沒有得到更多的選擇。 – braX

+0

您可以發佈字符串的格式 –

+0

@braX,Microsoft:CVDate與CDate相同,但其返回值的聲明類型除外。我使用CDate來獲取Date變量。 – AlexVB

回答

0

你可以使用下面的代碼

Msgbox Format("24/01/2017","MMM, DD, YYYY") 

這會給你輸出Jan, 24, 2017。您可以使用其他格式,當您單擊「格式」單元格時可輕鬆使用該格式。由於

+1

錯誤的方式。再次閱讀問題。 – john

+0

我想這將首先將「24/01/2017」轉換爲日期數據類型,然後使用「MMM,DD,YYYY」格式化它。我想控制第一階段,以便我可以指定「01/02/2017」是2月1日,而不是1月2日(或其他方式)。 – AlexVB

1

做這樣的事情......

strDate = Split(strDate,"/") 
newstrDate = strDate(1) & "/" & strDate(0) & "/" & strDate(2) 
strDate = CDate(newstrDate) 
1

在這種情況下我會避免CDATE產品總數,而是分裂日期字符串到年,月,日和使用DateSerial(年,月,日)。這樣你可以完全控制。