首页 > 解决方案 > 通过数组将日期格式化为年份

问题描述

我正在为这件事失去理智。

Dim myDate As Date
Dim myString As String

myDate = #9/29/1992#
myString = myDate

Range("A1") = myDate 'output: 29/09/1992
Range("A2") = Year(myDate) 'output: 14/06/1905
Range("A3") = Right(myString, 4) 'output: 14/06/1905
Range("A4") = Format(myDate, "yyyy") 'output: 14/06/1905
Range("A5") = Format(myDate, "mm/dd/yyyy") 'output: 29/09/1992

Range("A:A") 被格式化为短日期,因为它保存了许多主题的出生日期 (dd/mm/yyyy)。发生的情况是,我将 1992 输出到格式化为短日期的单元格,这会将其转换为 1905 年 6 月 14 日。

问题是我将整个范围加载到一个数组中,进行一些修改。有时出生日期是正确的,有时我会计算出估计的出生年份。然后我将修改后的数组输出到我的范围。这是一个非常复杂的代码,这是最简单和最快的方法。

但是,我如何将那些只有一年的单元格格式化为数字/文本/任何将其格式化为“yyyy”的内容?

标签: vbadate

解决方案


推荐阅读