使用VBA for Excel将hh:mm:ss转换为文本

时间:2015-03-23 06:30:21

标签: excel vba excel-vba datetime text

我在单元格中有hh:mm:ss格式的列,但还添加了yyyy-mm-dd。 他们看起来像这样:

1970-01-01 00:01:25

我希望它看起来像文本格式:

00:01:25

如果我手动使用文本到列来删除yyyy-mm-dd并仅将00:01:25部分作为文本导入,它可以正常工作。

但如果我创建一个宏做同样的事情,我最终得到:

:01:25 AM

我的宏看起来像这样:

Columns("D:D").Select
Selection.TextToColumns Destination:=Range("D1"), DataType:=xlFixedWidth, _
    FieldInfo:=Array(Array(0, 9), Array(12, 2)), TrailingMinusNumbers:=True

谢谢大家,我现在通过使用以下代码让它工作了(我得到了另一个委员会的帮助:

Sub m()
With Range("D2:D" & Range("D" & Rows.Count).End(xlUp).Row)
    .NumberFormat = "@"
    .Cells = Evaluate("=INDEX(TEXT(" & .Address & ",""HH:MM:SS""),0)")
End With
End Sub

1 个答案:

答案 0 :(得分:1)

可以使用excel公式Text(text;format)来查看图片和公式栏。

enter image description here

或者您可以将自定义文字格式应用于原始列。

enter image description here

或者需要在VBA中执行此操作?

编辑。使用VBA的解决方案

Range("D:D").NumberFormat = "hh:mm:ss"