Numberformat不会更改vba excel中的单元格值

时间:2018-02-22 23:20:49

标签: vba excel-vba number-formatting string-parsing excel

我有一系列数字格式化为A列中的文字,代表日期:

02 10 'which means 02 October 
03 11 'which means 03 November
04 12 'which means 04 December

我要做的是解析这个字符串,以便将其转换为正确的日期格式,这是我的代码:

Dim l As Long
Dim s As String
Dim d As Date
Columns("a").NumberFormat = "0000"
l = Range("A3").Value
s = CStr(l)
d = DateSerial(CInt(2017), CInt(Left(s, 2)), CInt(Right(s, 2)))
Range("A19").Value = d
Range("a19").NumberFormat = "mm/dd/yyyy" 

我遇到的问题是当A列中的单元格值是2 10(10月的第二个)时,我的数字格式会强制它变为0210,但单元格本身的值仍为210,因此我的字符串解析不会我的工作如何绕过这个问题?

1 个答案:

答案 0 :(得分:2)

正如评论中所述,Split上的.Text property

Range("A19").Value = dateserial(2017, split(Range("A1").Text, chr(32))(1), split(Range("A1").Text, chr(32))(0))
Range("A19").NumberFormat = "mm/dd/yyyy"