2014-11-03 265 views
0

我有时间戳的一个CSV以下类型有几千行的文件:转换时间戳文本日期格式使用VBA

Oct 1, 2014 - 06:22:25 

现在我知道我可以使用公式提取数据,而且我可以理论上在VBA中也是如此。但是,这似乎是一个相当混乱的解决方案,写出所有Worksheetapplication函数。

是否有一个标准函数可以让我做到这一点? 我希望有人能为我发光呢?

+1

的'LEFT'和'DATEVALUE'天然表函数也可以作为天然VBA命令。 – Jeeped 2014-11-03 20:27:38

回答

0

如果我已经正确理解你的问题,你不需要vba。你可以使用公式来完成...我已经将你的字符串转换为日期格式。

A1 = Oct 1, 2014 - 06:22:25
B1 = =TEXT(DATEVALUE(MID(A1,1,FIND("-",A1)-2)),"dd/mm/yy")

希望帮助

+0

我不会将日期值转换为文本 - 将其保留为日期,然后格式化单元 – SeanC 2014-11-03 22:10:27

+0

主题说转换为日期格式。我不明白这一点,因此这个解决方案..你说什么可以完成... = DATEVALUE(MID(A1,1,FIND(“ - ”,A1)-2))然后格式化单元,但是OP想要。 – 2014-11-03 22:14:01

0

2层简单的方法来做到这一点。 在这两种情况下,只要您摆脱连字符,MS都会轻松地将字符串日期转换为真。 这两种解决方案都有嵌入的公式/函数。

公式:

=REPLACE(A1,FIND("-",A1),1,"") 

VBA:

Function GetDate(sDate As String) As Date 
    GetDate = CDate(Replace(sDate, "-", "")) 
End Function 
+0

感谢您的帮助,但此解决方案对我无效,因为我的Excel版本不是英文版本。因此,Excel不会自动识别日期格式。 DATEVALUE给我一个错误。如果我试图通过公式来做这个问题,也会弹出。 – rohrl77 2014-11-04 08:33:12

+0

您提供的样品与美国相同。月份缩写是否改变?如果是这样,它是什么语言? – 2014-11-04 14:43:31