Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 格式正确的日期(例如2017年3月1日00:00:00)_Vba_Excel - Fatal编程技术网

Vba 格式正确的日期(例如2017年3月1日00:00:00)

Vba 格式正确的日期(例如2017年3月1日00:00:00),vba,excel,Vba,Excel,每次我尝试将日期更改为特定格式时,excel会自动将格式更改为“2017年3月1日0:00”,而不是2017年3月1日00:00:00 我的代码如下: objMasterDefectLog.Sheets(1).Range(strFrozenCustReqDateLoc).Offset(iCounter, 0).Value = Format(tempString, "dd-mmm-yyyy hh:mm:ss") 即使我将tempString转换为日期,它的格式仍然不正确。如果不需要,我宁愿不解析

每次我尝试将日期更改为特定格式时,excel会自动将格式更改为“2017年3月1日0:00”,而不是2017年3月1日00:00:00

我的代码如下:

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

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

设置值后,还需要定义单元格的格式。设置
.Value
仅设置单元格的值,而不设置格式。因此,您还需要格式化单元格:

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

另请参见:

设置值后,还需要定义单元格的格式。设置
.Value
仅设置单元格的值,而不设置格式。因此,您还需要格式化单元格:

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

另请参见:

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

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

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

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

将日期格式化为文本而不是使用日期的好处在哪里?我只看到缺点,完全同意你的看法。但我们看不到代码的其余部分。谁知道那间牢房以后用来干什么!只是提供一个备选方案以备不时之需。好的,我只是认为您有一些特定的想法。对不起,这可以存储为字符串,但我不希望文本中包含“%”。同样,下面的代码也可以工作,但我需要MAR为大写。UCase不能很好地处理日期。@Peh,我想诺兰已经找到了一个我们都没有预见到的好处。上部外壳。我想不出仅仅是格式化怎么做。将日期格式化为文本而不是使用日期的好处在哪里?我只看到缺点,完全同意你的看法。但我们看不到代码的其余部分。谁知道那间牢房以后用来干什么!只是提供一个备选方案以备不时之需。好的,我只是认为您有一些特定的想法。对不起,这可以存储为字符串,但我不希望文本中包含“%”。同样,下面的代码也可以工作,但我需要MAR为大写。UCase不能很好地处理日期。@Peh,我想诺兰已经找到了一个我们都没有预见到的好处。上部外壳。我想不出你怎么能在格式上做到这一点。有没有办法让我的月份全部大写?这样我看不到任何机会,因为格式取决于你使用的本地化。因此,您需要将日期转换为文本,并将其转换为大写(请参见answer@CLR)。但请注意,您不能将日期转换为文本进行计算!谢谢你抽出时间。我决定只使用“'”答案。我不喜欢这个解决方案,但看起来我只是有点受限于得到我想要的东西。谢谢。是否有办法让我的月份全部大写?这样我看不到任何机会,因为格式取决于您使用的本地化。因此,您需要将日期转换为文本,并将其转换为大写(请参见answer@CLR)。但请注意,您不能将日期转换为文本进行计算!谢谢你抽出时间。我决定只使用“'”答案。我不喜欢这个解决方案,但看起来我只是有点受限于得到我想要的东西。非常感谢。