我正在使用Excel将数据从一个输出.csv文件的系统转换到另一个可以读取.xls文件的系统。其中一列是大小,通常包括4-6、6-8等术语。当在Excel中打开csv时,这些项会自动(?)转换为日期(4月6日、6月8日等)我可以使用.NumberFormat = "m-d“使数据看起来像是*,但当然它仍然是一个日期值,我试图用它执行的任何操作都会转换回date。有没有办法把它完全转换成这种格式的文本?如果我将.NumberFormat声明为"@",它只是将值更改为一个序列。我使用size以及其他几列来创建一个长长的产品ID代码,用于库存目的……当大小更改为日期值时,我最终会丢失一些数据。
发布于 2017-10-04 23:30:26
我找到了一个完全从VBA运行的问题的解决方案-即,不依赖于特殊的导入条件。如果有任何建议或建议,我将不胜感激,特别是如果这可能会造成无法预见的错误:
Dim Size as String
For i = 2 To LastRow
If IsDate(Range("H" & i).Value) Then
Size = Month(Range("H" & i)) & "-" & Day(Range("H" & i))
Range("H" & i).NumberFormat = "@"
Range("H" & i) = Size
End If
Next i我测试的列包括字符串(XL、SM、12T等)的大小值,以及转换为日期(4-6、6-8)的值。这似乎会将其转换回字符串值,然后在以后的所有使用(连接和逻辑测试)中将其正确地视为字符串值。
https://stackoverflow.com/questions/46554640
复制相似问题