VBA:将日期更改为字符串问题

问题描述 投票: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")

当我将结果值添加到单元格时,使用上述所有内容,它显示格式正确,但在查看值时仍然显示完整日期和日期并显示为自定义格式。

对我做错了什么有什么想法吗?

仅供参考,我让它工作的唯一方法是为每个值添加一个单引号。

谢谢。

_t

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.