以下代码行不仅更改了日期格式,还更改了日期的值。为什么会发生这种情况,我该如何避免呢?
代码:
rng.Cells(intStartRow, rng.Columns.Count + 1) = _
Format(rng.Cells(intStartRow, rng.Columns.Count + 1).Value, "mmm-yy")
执行代码前rng.Cells(intStartRow, rng.Columns.Count + 1).Value
的值:
执行代码后rng.Cells(intStartRow, rng.Columns.Count + 1).Value
的值:
答案 0 :(得分:2)
如果您希望转换为实际日期并更改显示的格式,请使用:
With rng.Cells(intStartRow, rng.Columns.Count + 1)
.Value = CDate(.Value)
.NumberFormat = "mmm-yy"
End With
答案 1 :(得分:1)
它发生的原因是日期信息在内部存储为十进制数,并显示应用于单元格的日期格式。
在您的代码中,您将日期信息更改为字符串,因为函数Format()
的结果始终是字符串。
Rory提供了解决问题的灵魂。