我无法更改为日期格式。我有包含不同日期的单元格,但并非所有日期都格式化为日期。其中之一是“yy-mm-dd”,例如“13-04-08”,但它被格式化为常规。 我使用这个代码:使用VBA更改为日期格式时Excel不识别年
xCell = Format(xCell, "yyyy-mm-dd")
问题是,Excel不能告诉我们,如果“13”或“08”是“YYYY”,所以它不会改变任何东西。我该如何解决这个问题?我需要告诉excel哪些数字是在它更改日期之前的一年,我该怎么做?它可以包含在Format方法中吗?
编辑: 我觉得我有必要解释了整个事情的问题,看来到别的地方打好。 包含日期的单元格是这样的,从开始,被格式化为一个一般:
13-05-06 A
13-05-21 A
...
我删除不需要的“A”与此代码:
Sub rensa()
Dim Found As Range
For Each xCell In Range("D2:D999")
If IsEmpty(xCell.Value) Then Exit For
Set Found = xCell.Find(What:="A", LookIn:=xlValues, LookAt:=xlPart)
If Found Is Nothing Then
Else
xCell.Value = Left(xCell.Value, Len(xCell.Value) - 1)
End If
Next xCell
End Sub
我尝试了这些代码设置单元格格日期:
Range("D2:D999").NumberFormat = "yyyy-mm-dd"
Range("D2:D999").NumberFormat = "m/d/yyyy"
我也试图实现他们在for循环是这样的:
Sub rensa()
Dim Found As Range
For Each xCell In Range("D2:D999")
If IsEmpty(xCell.Value) Then Exit For
Set Found = xCell.Find(What:="A", LookIn:=xlValues, LookAt:=xlPart)
If Found Is Nothing Then
xCell.NumberFormat = "yyyy-mm-dd"
Else
xCell.Value = Left(xCell.Value, Len(xCell.Value) - 1)
xCell.NumberFormat = "yyyy-mm-dd"
End If
Next xCell
End Sub
但这并没有工作,因为我想要的。一切都使结果看起来像这样,仍然格式化为一般:
13-05-06
13-05-21
...
所以,A不见了,但没有别的改变。
您需要使用正则表达式来告诉Excel,它是日期编号和年份编号。 这里是相对于您的问题的答案: http://stackoverflow.com/a/7106594/516245 – zur4ik
问题的真实描述似乎是单元格数据不是日期,而是字符串。 –
@iDevelop你是对的,细胞数据不是从一开始的日期。也许标题应该说“...当改变日期格式”? – andysando