禁用Microsoft Excel的日期自动格式

时间:2015-04-04 04:09:50

标签: excel vba

我的情况如下:

我从.CSV文件导入数据,该文件包含日期列。出于我自己的原因(我必须稍后再次处理数据),我希望date列保留为String类型变量,直到我稍后进行自己的处理。

所以我从DATA选项卡下的文本导入数据,选择我的分隔符并选择列数据格式为TEXT。当数据被移入时,一切似乎都很好。

现在因为数据是“不干净”,日期字段前后有一个空格。所以没问题:我写一个宏来修剪()值,这样就是这样:

Dim v As String
v = Cells(Row, col).Value
v = Trim(v)
Cells(Row, col).Value = v

使用循环根据需要重新定义row和col。

问题是:一旦宏运行,Excel将结果字符串识别为日期格式,因此将该单元格的值转换为日期格式化字符串。如何将其保留为String值?

1 个答案:

答案 0 :(得分:3)

尝试:

Dim v As String
v = Cells(Row, col).Value
v = Trim(v)
Cells(Row, col).Value = "'" & v

如果您使用单引号添加单元格值,excel会将其视为字符串。

您也可以使用:

Dim v As String
v = Cells(Row, col).Value
v = Trim(v)
Cells(Row, col).NumberFormat = "@"
Cells(Row, col).Value = v