我有一列日期。我想修改格式并转换为文本。
我这样做是因为我有不同日期的日期,但只需要找到独特的月年组合。当我将日期格式化为显示“mmm-yy”,然后尝试获取唯一值时,它仍然会看到日期值,并提供比我需要的更多的唯一值。
为了解决这个问题,我尝试删除日期的“值”并转换为字符串,然后我可以删除日期。
我尝试转换的日期在工作表中显示为 31-DEC-22(例如),并且全部显示警告“此单元格包含仅用两位数字表示年份的日期字符串。”我不关心年份数字,但不确定这个警告是否是问题的一部分。
我尝试转换为字符串:
dateValue = CStr(dateValue)
Column.NumberFormat = "General"
str = Application.WorksheetFunction.Text(dateValue, "MMM-YY")
Dim str As String = Format(dateValue, "MMM-YY")
通过上述所有操作,当我将结果值添加到单元格时,它显示为正确的格式,但在查看该值时仍然显示完整的日期和日期并显示为自定义格式。
仅供参考,我让它发挥作用的唯一方法是为每个值添加单引号。
Excel 会将任何包含有效日期的字符串转换为日期,除非通过添加单引号明确告诉 Excel 这不是日期
mySheet.Cells(1,1).Value = "'" & str
或者在分配值之前将格式更改为文本
mySheet.Cells(1,1).NumberFormat = "@"
mySheet.Cells(1,1).Value = str