我想使用此代碼轉換String
爲Date
格式:DateTime.ParseExact未被識別爲有效的DateTime
Debug.Print(Trim(oTable.Cell(i + 1, 2).Range.Text.Replace(vbCr, "").Replace(vbLf, "")))
Tabledate = DateTime.ParseExact((Trim(oTable.Cell(i + 1, 2).Range.Text.Replace(vbCr, "").Replace(vbLf, ""))), "dd/MM/yy", CultureInfo.InvariantCulture)
的Debug.Print
行帶給我的結果30/12/15
,但DateTime.ParseExact
線始終返回一個錯誤,指出該字符串不是有效的DateTime格式?我錯過了什麼嗎?
注:我不得不刪除尾隨回報carragies因爲字符串是從一個表中的字來,出於某種原因,翻出的字符串
更新1
結束返回訴諸絕望的措施,我已經包括在我的代碼如下:
For Each A As Char In oTable.Cell(i + 1, 2).Range.Text
Debug.Print(A)
Next
這是打印結果:
3
0
/
1
2
/
1
5
(extra blank char)
(extra blank char)
我不知道這些空白字符在哪裏或是什麼,我試過用vbTab
代替,但它沒有區別。值得注意的是,字符串最初來自一個表中的單詞,它在表格單元格中的事實與這些空白字符的含義有什麼關係?
更新2
改變了調試代碼:
For Each A As Char In oTable.Cell(i + 1, 2).Range.Text
Debug.Print(CInt(AscW(A)))
Next
返回:
51
48
47
49
50
47
49
53
13
7
我相信意味着13是一個回車(即使它應該是修剪出來),7是一個「鍾」(我不知道鍾是什麼)
更新了問題,我想讓它留在那裏,因爲'Trim'命令或'Replace'是錯誤的原因。返回的字符串在問題中是公平的,它的'30/12/15' – SilverShotBee
不能使用常量「30/12/15」來重現,所以這裏有一些不清楚的地方。什麼是您的真實場所信息? – Steve
@SilverShotBee:也許裏面還有其他不可見的字符,例如'VbTab'。 –