我以常规格式设置了以下数据。
一整年都没有提供日期或月份。
我要实现的是,以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
数据类型,而无需指定日期和月份
答案 0 :(得分:1)
可以这样输入年份并将日期格式设置为“ 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月。因此,每年都表示为该年的1月1日。
有关VBA和Excel中的Date
的更多信息-VBA doesn't return the correct Date with Now()