date到正确的格式(例如01-MAR-2017 00:00:00)

每次我尝试将date更改为特定格式时,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转换为date,它仍然不能正确格式化。 如果我不需要,我宁愿不把所有东西都parsing出来。

你想让单元格包含date/时间,还是显示date/时间的文本? 如果前者用@佩赫的例子。 如果是后者,你可以用旧的撇号来强制它:

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

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

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

另请参阅: Range.NumberFormat属性(Excel)