Excel 2010。我正在 Excel 中导入 csv 文件以进行进一步处理。不幸的是,在 csv 日期字段中,日期的表示格式(“dd/mm/yyyy”)与我的电脑的默认格式(“mm/dd/yyyy”)不同。因此,我需要将每个日期字段(列)转换为我的格式,然后才能开始处理数据。
Range.TextToColumns 方法就像一个魅力:
Sub convertDateColumn()
Dim myColumn As Range
Set myColumn = Range("A1:A10")
myColumn.TextToColumns Destination:=myColumn.Cells(1), DataType:=xlDelimited, FieldInfo:=Array(0, xlDMYFormat)
End Sub
(假设日期字符串位于列范围 A1:A10 中)
...它将字符串“1/2/2017”正确转换为日期 2017 年 2 月 1 日,或将字符串“25/2/2017”正确转换为日期 2017 年 2 月 25 日。
但是,有些字段不是纯日期字符串,还包含时间信息。例如,“1/2/2017 09:30:00”表示 2017 年 2 月 1 日上午 9:30 或“25/2/2017 09:30:00”表示 2017 年 2 月 25 日上午 9:30。
不幸的是,上面示例宏中使用的 TextToColumns 方法似乎不再起作用。 “1/2/2017 09:30:00”被错误地转换为 2-Jan-2017 的上午 9:30,而“25/2/2017 09:30:00”则未被转换。这在某种程度上是正常的,因为字段信息(xlDMYFormat)不再准确描述字段格式。
我的问题:有没有办法将 TextToColumns 与包含时间信息的字符串一起使用?或者,还有其他方法可以转换所有列的日期/时间字符串,而无需循环遍历每个单元格(这很简单但很慢)?
最佳答案
要使用带有时间格式的 TTC,您需要分割时间(分隔符 = 空格)。这适用于您的数据吗?
您还需要一种处理字符串日期或日期/时间的方法。
最简单的方法是进行真正的导入(数据►获取外部数据►从文本)并在数据写入工作表之前正确处理数据。这需要能够使用空格作为分隔符。
<小时/> <小时/> <小时/> <小时/> <小时/>请注意,最后一个屏幕截图中的日期已转换为我的 MDY“正常”设置,因此它们都代表二月日期。
如果这不起作用,请告诉我,因为我有一个宏应该能够以混合格式转换混合日期/时间。
关于excel - TextToColumns 用于带有时间的日期字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43289476/