如果要在保留时间信息的同时更改数据的显示格式,可以在工作表或图表轴的单元格中使用NumberFormat ="mm/dd/yyyy"之类的内容.
Excel将日期/时间信息存储为浮点数.日期在小数点的左边,天的分数(hh:mm:ss)在右边.如果要从基础数据中删除时间信息,请转换为Long然后再转换为Date.在VBA中(感谢TM的更正):
DateOnly = CDate(Int(DateTime))
Run Code Online (Sandbox Code Playgroud)
在工作表公式中,只需转换为Int并根据需要格式化
DateOnly = INT(DateTime)
Run Code Online (Sandbox Code Playgroud)
希望有所帮助
Excel 中的所有日期都包含时间:datetime。无法在单元格中仅存储日期或时间。原因是 Excel 将它们存储为数字。小数点之前的任何内容都是日期,小数点之后的任何内容都是时间。因此,即使您将数字 42000 放入单元格中(小数点后不包含任何内容)并将该单元格的格式更改为日期,该值仍将是 2014 年 12 月 27 日(1899 年 12 月 31 日后 42000 天),并带有假定时间为零 = 早上 00:00:00。
由于所有数字都可能在小数点后包含某些内容,因此 Excel 中的所有日期都有时间,并且所有时间都有日期。
您唯一可以做的就是:设置单元格格式以仅显示日期部分或时间部分或两者。因此,您所需要做的就是隐藏时间。
如果要将所有日期更改为小数点后为零,则必须循环遍历数字并将所有值更改为 INT 值。
For intColumn = 1 to 1000
If Sheet1.Cells(1, intColumn).Value2 = vbNullString then Exit For
Sheet1.Cells(1, intColumn).Value2 = Int(Sheet1.Cells(1, intColumn).Value2) ' Do not use CInt but Int only!
next intColumn
Run Code Online (Sandbox Code Playgroud)