注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Oh! I see you!

Hi! ppmm~~

 
 
 

日志

 
 

Excel单元格及vba里时间毫秒的计算和显示  

2011-08-09 11:05:22|  分类: Excel |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

本文链接:http://oicu.cc.blog.163.com/blog/static/12303947120117911522208/

Excel单元格里显示毫秒参考下列的自定义格式:
hh:mm:ss.0
hh:mm:ss.00
yyyy/mm/dd hh:mm:ss.000


原始数据用hh:mm:ss:000或者h:m:s:000存储,没有严格要求,毫秒也用“:”分隔而不
用“.”的好处就是在单元格里能够显示毫秒而且更方便的修改。比如下列数据都可以:

   A  B  C
 1  09:05:12:132  19:05:13:131  
 2  9:5:12:133  19:05:13:132  

Excel 2007/2010里计算、显示毫秒的方法:
=TEXT(TIMEVALUE(SUBSTITUTE(B1,":",".",3))-TIMEVALUE(SUBSTITUTE(A1,":",".",3)),"hh:mm:ss.000")


在vba里计算日期要考虑夏令时,所以不推荐把字符型时间值转换为长整型的毫秒来计算。


发信人: oicu (Oh! I see you!), 信区: OfficeSoft
标  题: Re: excel计算毫秒的问题
发信站: 水木社区 (Wed Aug 10 16:01:51 2011), 站内

工作表函数和vba函数是两个不同的东西,即使同名用法也不同,vba里的TimeValue不支
持 11:12:33.444 这种时间格式,实在找不到相关的vba函数,也不用那么死板,可以用
单元格来中转处理数值,比如下列方法:


Sheet1的A1、B1里分别是原始记录。

Sheet2的C1单元格填入函数公式:

=TEXT(TIMEVALUE(SUBSTITUTE(B1,":",".",3))-TIMEVALUE(SUBSTITUTE(A1,":",".",3)),"hh:mm:ss.000")


vba里把Sheet2隐藏了,模块里写宏:

Sub Test()

    Dim CloseTime As String
    Dim OpenTime As String
    OpenTime = Sheet1.Range("A1").Value
    CloseTime = Sheet1.Range("B1").Value
   
    ' Do something
   
    Sheet2.Range("A1").Value = OpenTime
    Sheet2.Range("B1").Value = CloseTime
   
    Debug.Print Sheet2.Range("C1").
Value2
End Sub


【 在 lance (damage340) 的大作中提到: 】
: 我是问vba怎么写呀……
: 另外奇怪的是这个函数在vba里是可以调用的,但是不能加入毫秒……
: 而单元格里调用就可以加入毫秒。

  评论这张
 
阅读(3931)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017