Excel Vba。将[m]格式转换为常规格式

时间:2016-12-10 09:21:45

标签: excel-vba vba excel

我在Excel中有这个数据是1:30。由于我想显示以分钟为单位的时间,我将单元格格式定义为[m],以获得90作为我的显示值。 (Cell.Numberformat = [m])

有没有办法将此值转换为“常规”格式?我仍然希望在我的单元格中使用值90,但使用“常规”格式。

2 个答案:

答案 0 :(得分:1)

如果您将90分钟的值转换为“常规”,则Excel将返回值“0.0625”。

尝试使用Application.Text将显示值90存储为变量。

myValue = CDbl(Application.Text(myValue, "[m]"))

在01:30:00('hh:mm:ss')的值上测试后,返回值90.

答案 1 :(得分:-1)

Excel将日期和时间存储为数字。在一个单元格中输入“1:30”,在另一个单元格中输入“.062500”。将“1:30”单元格重新格式化为“带小数点后六位的数字”,它将显示为“.062500”。将“.062500”单元重新格式化为“h:mm”,它将显示为“1:30”。

当您键入Excel时,它会查看该值并确定它的值。如果它确定它是日期或时间或日期和时间,它会将其转换为数字,但将NumberFormat设置为与值的格式匹配。

该数字的整数部分是:自191年1月1日以来的天数“

该数字的一小部分是从午夜起的秒数/(24 * 60 * 60)

要以数字格式"常规"显示以分钟为单位的时间,您需要将公式放在另一个单元格中,其值为“= HOUR(xn)* 60 + MINUTE(xn) “其中xn是您要转换的单元格的地址。

或者,VBA宏可以查找格式为“hh:mm”的单元格,将单元格的值替换为分钟数,并将NumberFormat替换为“General”