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

Numberformat不会更改vba excel中的单元格值,vba,excel,number-formatting,string-parsing,Vba,Excel,Number Formatting,String Parsing,我在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").Va

我在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月2日)时,我的数字格式会强制它变为0210,但单元格本身的值仍然是210,因此我的字符串解析无法工作。如何绕过此问题?

如注释中所述,在单元格的


请将其保留为文本并使用Split()。您能给我看一下
ActiveSheet.Range(“A19”)。Value=DateSerial(2017,CInt(Split(ActiveSheet.Range(“A3”))(1)),CInt(Split(ActiveSheet.Range(“A3”)(0))
不知怎的,我得到了一个运行错误“9”下标超出范围;(@MehdiFlame)那么您没有显示的数字之间的空格。步骤1-在A1中键入
'03 10
。步骤2-运行这两行代码。步骤3-
10/03/2017
在A19中。您完全正确,因为数据是通过OCR提取的。有些确实有空格,有些我不能做些什么吗?可能
范围(“A19”).Value=DateSerial(2017,右(范围(“A1”).Text,2),左(范围(“A1”).Text,2))
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"