【发布时间】:2019-03-07 22:37:09
【问题描述】:
我有以下一般格式的数据集。
多年没有提供日期或月份。
我想要实现的,是以yyyy 格式显示日期。
我制作了一个标准的DateSerial 函数来正确地将数据转换为日期。
Private Function toDate(ByVal text As String) As Date
toDate = DateSerial(Int(text), 1, 1)
End Function
For Each cell in ws.Range("A21:A" & lr)
cell = toDate(cell)
cell.NumberFormat = "yyyy"
Next cell
现在,从技术上讲,这是可行的,但是如果您在单元格内单击,它 显然日期仅显示为
01-01-year- 这是意料之中的 使用日期序列但我想知道,是否有可能将我的数据以某种方式 省略
Days和Months,只将结果显示为year?
基本上,我需要将数据转换为 Date 数据类型而不指定日期和月份
【问题讨论】:
-
这里的最终目标是什么?如果您始终希望它们在用户点击编辑时也显示为 xxxx,为什么不只使用我们 xxxx 呢?
-
@TimWilliams 遗憾的是,这是专门要求采用
yyyy格式的。我个人也希望将其保留为一个简单的数字,但不是我的选择:) -
我猜,这个问题可以简化为一个简单的“是否可以创建没有日期和月份的
Date数据类型”,但你知道, “必须展示你的努力和所有这些”正在应用 -
我猜答案是否定的,如果列表保持为 xxxx 很重要,那么在消费/使用这些值时应该转换为日期。
-
您可以使用 Excel 公式 + 更改数字格式。假设您的年份系列是 A1,然后在 B1:
=DATE(A1,1,1),填写并完成,然后将 A:B 列的数字格式更改为yyyy。然后将粘贴值从 B 复制到 A,去掉 B 列。