将日期更改为格式为“mmm-yy”的字符串

问题描述 投票:0回答:1

我有一列日期。我想修改格式并转换为文本。

我这样做是因为我有不同日期的日期,但只需要找到独特的月年组合。当我将日期格式化为显示“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 vba string date unique
1个回答
0
投票

Excel 会将任何包含有效日期的字符串转换为日期,除非通过添加单引号明确告诉 Excel 这不是日期

mySheet.Cells(1,1).Value = "'" & str

或者在分配值之前将格式更改为文本

mySheet.Cells(1,1).NumberFormat = "@"
mySheet.Cells(1,1).Value = str
© www.soinside.com 2019 - 2024. All rights reserved.