VBA 中日期格式的差异
Differences between date formatting in VBA
我想达到 A1 中看到的结果。为什么第 3 行不会输出与第 1 和第 2 行相同的结果,即使格式相同 - yyyy-mm-dd hh:mm:ss?
这与区域设置有什么关系吗?
1 Range("A1").Value2 = Now
2 Range("A1").NumberFormat = "yyyy-mm-dd hh:mm:ss"
3 Range("B1").Value2 = Format(Now, "yyyy-mm-dd hh:mm:ss")
为什么不在之前或之后设置带有范围的单元格格式?
示例:
Range("A1:Z1").NumberFormat = "yyyy-mm-dd hh:mm:ss"
Range("A1").Value2 = Now
Range("B1").Value2 = Now
那是因为:
A1:您设置了一个 日期 值并应用了特定的显示格式。
B1:您将日期值格式化为 Text,将其设置为值,但单元格未应用特定格式,因此 Excel 看到文本date 作为日期值并将其转换为真正的日期值,该值以您的默认(德语?)日期格式显示。
要强制将文本日期读取为文本,您可以在其前面加上引号:
Range("A1").Value2 = Now
Range("A1").NumberFormat = "yyyy-mm-dd hh:mm:ss"
Range("B1").Value2 = Format(Now, "yyyy-mm-dd hh:mm:ss")
Range("C1").Value2 = Format(Now, "\'yyyy-mm-dd hh:mm:ss")
输出(丹麦语本地化):
请注意,C1 是 text(左对齐)。
我想达到 A1 中看到的结果。为什么第 3 行不会输出与第 1 和第 2 行相同的结果,即使格式相同 - yyyy-mm-dd hh:mm:ss?
这与区域设置有什么关系吗?
1 Range("A1").Value2 = Now
2 Range("A1").NumberFormat = "yyyy-mm-dd hh:mm:ss"
3 Range("B1").Value2 = Format(Now, "yyyy-mm-dd hh:mm:ss")
为什么不在之前或之后设置带有范围的单元格格式?
示例:
Range("A1:Z1").NumberFormat = "yyyy-mm-dd hh:mm:ss"
Range("A1").Value2 = Now
Range("B1").Value2 = Now
那是因为:
A1:您设置了一个 日期 值并应用了特定的显示格式。
B1:您将日期值格式化为 Text,将其设置为值,但单元格未应用特定格式,因此 Excel 看到文本date 作为日期值并将其转换为真正的日期值,该值以您的默认(德语?)日期格式显示。
要强制将文本日期读取为文本,您可以在其前面加上引号:
Range("A1").Value2 = Now
Range("A1").NumberFormat = "yyyy-mm-dd hh:mm:ss"
Range("B1").Value2 = Format(Now, "yyyy-mm-dd hh:mm:ss")
Range("C1").Value2 = Format(Now, "\'yyyy-mm-dd hh:mm:ss")
输出(丹麦语本地化):
请注意,C1 是 text(左对齐)。