更正格式的日期(例如01-MAR-2017 00:00:00)

时间:2017-03-30 13:37:41

标签: excel vba excel-vba

每当我尝试将日期更改为特定格式时,excel会自动自动格式化为" 3/1/2017 0:00"而不是01-MAR-2017 00:00:00。

我的代码如下:

objMasterDefectLog.Sheets(1).Range(strFrozenCustReqDateLoc).Offset(iCounter, 0).Value = Format(tempString, "dd-mmm-yyyy hh:mm:ss")

即使我将tempString转换为日期,它仍然无法正确格式化。如果我不必,我宁愿不解析所有内容。

2 个答案:

答案 0 :(得分:2)

您还需要在设置值后定义单元格的格式。设置.Value仅设置单元格的值,但不设置格式。所以你还需要格式化单元格:

objMasterDefectLog.Sheets(1).Range(strFrozenCustReqDateLoc).Offset(iCounter, 0).NumberFormat = "dd-mmm-yyyy hh:mm:ss" 

另请参阅:Range.NumberFormat Property (Excel)

答案 1 :(得分:2)

您希望单元格包含日期/时间,还是显示日期/时间的文本?如果是前者,请使用@ Peh的例子。如果是后者,你可以用旧的撇号技巧强制它:

...Offset(iCounter, 0).Value = "'" & Ucase(Format(tempString, "dd-mmm-yyyy hh:mm:ss"))