在excel vba中将数据types更改为文本

原始数据types是[h]:mm:ss

50:53:00 

我想要像这样改变为文本数据types

 50h 53m 

如何在excel-vba中转换成这个?

你可以做或不做vba。

1.没有vba

  • 将单元格格式设置为自定义:[hh]“h”mm“m”

2.用vba

 Sub numberf() Dim ws As Worksheet Set ws = ThisWorkbook.Worksheets(1) ws.Range("F1").NumberFormat = "[hh]""h"" mm""m""" End Sub 

你也可以在下面的excel单元格中进行格式化:

  h\h mm \m 

我会尝试这样的UDF:

 Function ConvertToText(TimeValue As Double) As String Hours = Int(TimeValue * 24) Minutes = Int((TimeValue * 24 - Hours) * 60) ConvertToText = Hours & "h " & Minutes & "m" End Function 

我将原始值放在一列中,在另一列中使用公式,如果不想显示原始值,则隐藏原始值。

另一个select是将一个范围赋予一个Sub,将该子链接到一个button上,并使该子范围遍历该范围中的每个单元格并进行更改。