在我的 excel 文件中,有一百列。我想将一些列(例如列 A、C、F、G..)从文本转换为日期。如果手动逐列更改每一列,确实需要时间。我该怎么做 ?通过使用 VBA?
原始文本列格式就像 '31-Dec-2011 00:00:00'。我想转换为 'dd/mm/yyyy' 31/12/2011
谢谢
在我的 excel 文件中,有一百列。我想将一些列(例如列 A、C、F、G..)从文本转换为日期。如果手动逐列更改每一列,确实需要时间。我该怎么做 ?通过使用 VBA?
原始文本列格式就像 '31-Dec-2011 00:00:00'。我想转换为 'dd/mm/yyyy' 31/12/2011
谢谢
如果您真的想在每个单元格中缩短时间,那么这可能是一种方法:
如果目标时间在名为“target”的工作表的 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
对有问题的列使用以下内容:
Columns("A:A").Select
Selection.NumberFormat = "m/d/yyyy"
谢谢大家。
为了简化程序,我只是开发了一些宏供用户运行以更改列格式,然后他们可以将excel导入mdb而不会出错。