如何将文本中的多列转换为date?

在我的excel文件中,有一百列。 我想从文本转换一些列(如列A,C,F,G ..)到date。 如果手动将每列逐列一列,那么确实需要时间。 我该怎么做 ? 通过使用VBA?

原始文本列格式就像“31-Dec-2011 00:00:00”。 我想转换为2011年12月31日的“dd / mm / yyyy”

谢谢

如果你真的想在每个单元格中切断时间,那么这可能是一个办法:

如果目标时间位于名为“目标”的工作表的A列中,且A1中的列标题为“StartTime”

您可以修改下面的内容并添加一个参数,以便获取列地址。 然后可以多次调用几次来执行这个操作。

Sub ChopOffTime() dim mySheetName as string mysheetname = "target" '<<<<change to your sheet name myLstRow = Excel.ActiveWorkbook.Sheets(mysheetname ).Cells(Excel.ActiveWorkbook.Sheets(mysheetname ).Rows.Count, Excel.ActiveWorkbook.Sheets(mysheetname).Range("A2").Column).End(Excel.xlUp).Row With Excel.ActiveWorkbook.Sheets(mysheetname) .Columns("B:B").Insert Excel.xlToRight .Range("B2:B" & myLstRow).FormulaR1C1 = "=TIME(HOUR(RC[-1]),MINUTE(RC[-1]), SECOND(RC[-1]))" .Range("B1") = "StartTime" '<<<<<change to appropriate header .Columns("B:B").Copy .Columns("A:A").PasteSpecial Excel.xlPasteValues .Columns("B:B").Delete Excel.xlToLeft End With End Sub 

谢谢大家。

为了简化程序,我刚开发了一些macros,供用户运行改变列格式,然后导入excel的mdb而不出错。

使用以下问题的列:

 Columns("A:A").Select Selection.NumberFormat = "m/d/yyyy"