我有一個包含英語日期格式的電子表格:VBA:interpeting英語日期格式字符串
12 Feb 2015
13 Oct 2016
etc.
然而,由於我的MS Excel在法國,它不以他們爲日期,而是作爲字符串。
我需要做一些解析這些值,所以我運行我的程序,但有些惱人的事情發生。無論操作系統/微軟語言如何,VBA都會設置爲英文,因此,當我打印日期時,它會返回法文日期(12-févr-2015
,讀爲12/02/2015
)。這阻止了我將該值與以前的12 Feb 2015
進行比較。
無論如何,我可以問VBA不要主動將我的字符串解釋爲日期嗎?
這裏是我的代碼+測試用例的簡化版本(但我猜你將無法看到問題,如果在英文Excel中運行它):
- 將字符串
12 Feb 2015
在您的電子表格 運行下面的代碼的範圍A1:
Sub test() myVal = Range("A1").Value Range("A2").Value = myVal End Sub
的範圍(「A2」)的值將在您的Excel語言的日期,而不是一個字符串,因爲它是以前。
注:我曾經想過寫Range("A2").Value = "'" & myVal
讓值是String
,而不是一個日期,但它不會讓我可以以後用'12 Feb 2015
比較12 Feb 2015
而且,不管怎麼說,12 Feb 2015
成爲日期已被myVal = Range("A1").Value
讀取。
是否真的需要'12-févr-2015'並使其成爲'2015年12月05日'或者這是寫入它的技術錯誤? – Vityata
您的示例代碼使用Variant - 如果要控制值的解釋方式,則需要控制所使用的變量的數據類型。 –
@Vityata我的意思是你在單元格中看到'12-févr-2015',但是如果你按F2來檢查它的值,它將是'12/02/2015'。可能而不是2月是一個打字錯誤,將立即改變它! –