excel - 如何在vba中只显示年份?
问题描述
我有以下一般格式的数据集。
多年没有提供日期或月份。
我想要实现的是以yyyy
format显示日期。
我做了一个标准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
-使用 dateserial 可以预期但我想知道,是否有可能给我的数据以某种方式省略
Days
andMonths
并且只将结果显示为year
?
基本上,我需要在Date
不指定日期和月份的情况下将数据转换为数据类型
解决方案
输入年份并将日期格式化为“YYYY”可以这样完成:
Sub TestMe()
With ThisWorkbook.Worksheets(1)
.Range("A1") = 2011
.Range("A2") = 2013
.Range("A3") = 2011
Dim myCell As Range
For Each myCell In .Range("A1:A3")
myCell = DateSerial(myCell, 1, 1)
myCell.NumberFormat = "yyyy"
Next myCell
End With
End Sub
“技巧”是DateSerial(myCell, 1, 1)
从单元格中获取年份并添加1
一天和一月的月份。因此,每一年都表示为从那一年开始的日期 1.January。
有关Date
VBA 和 Excel 中的更多信息 - VBA 不会使用 Now() 返回正确的日期
推荐阅读
- javascript - Django:如何保存 mxGraph,所以当用户刷新图形时会保留?(异步)
- javascript - 以下 2 组代码,其中一组有效,另一组无效。有人可以帮我理解为什么
- python - 图像区域的直方图
- python - 解析错误的 XHTML
- java - 在两个字符串之间查找文本(十六进制)
- python - 在 python 中的 Cypher 查询中传递变量
- dart - 如何将 BottomNavigationBar 与 BLoC 一起使用?
- html - ionic 3 storage 获取数据并在 html 中显示
- sql-server - 重叠日期时间的触发器
- spring - 找不到名为“entityManagerFactory”的bean