Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2603|回复: 8

[已解决]新手求助!VBA中内容为时间的两个单元格之间的相减问题!

[复制链接]
发表于 2015-10-10 14:31 | 显示全部楼层 |阅读模式
一个计算历时的问题,用b列的时间减去a列的时间,讲结果保存为“*时*分*秒”的格式,并保存在c列中,我不知道该用哪种方法,之前单纯用value值相减,结果显示是“对象格式不匹配”。
最佳答案
2015-10-10 16:49
Sub test()
    Dim A, i
    Sheets(1).Activate
    A = Range("a1").CurrentRegion

    For i = 2 To UBound(A)
        A(i, 3) = CDate(A(i, 2)) - CDate(A(i, 1))
    Next i

    Range("c:c").NumberFormat = "h时mm分ss秒;@"
    [c1].Resize(UBound(A)) = Application.Index(A, 0, 3)
End Sub

问题2.rar (10.05 KB, 下载次数: 2)
QQ截图20151010142153.png

问题.rar

8.57 KB, 下载次数: 11

 楼主| 发表于 2015-10-10 15:29 | 显示全部楼层
回复

使用道具 举报

发表于 2015-10-10 16:26 | 显示全部楼层
sdfsdfsd.gif


公式和单元格格式,都是对的。下拉即可!

不知是要问什么问题?
回复

使用道具 举报

 楼主| 发表于 2015-10-10 16:39 | 显示全部楼层
爱疯 发表于 2015-10-10 16:26
公式和单元格格式,都是对的。下拉即可!

不知是要问什么问题?

谢谢!我的意思如果我用代码的来实现话,该怎么写呢
回复

使用道具 举报

发表于 2015-10-10 16:40 | 显示全部楼层
代码执行后,希望C列里是值,还是公式?
回复

使用道具 举报

 楼主| 发表于 2015-10-10 16:41 | 显示全部楼层
本帖最后由 dongo1992 于 2015-10-10 16:42 编辑
爱疯 发表于 2015-10-10 16:40
代码执行后,希望C列里是值,还是公式?

得到结果,就是最终的值
回复

使用道具 举报

发表于 2015-10-10 16:49 | 显示全部楼层    本楼为最佳答案   
Sub test()
    Dim A, i
    Sheets(1).Activate
    A = Range("a1").CurrentRegion

    For i = 2 To UBound(A)
        A(i, 3) = CDate(A(i, 2)) - CDate(A(i, 1))
    Next i

    Range("c:c").NumberFormat = "h时mm分ss秒;@"
    [c1].Resize(UBound(A)) = Application.Index(A, 0, 3)
End Sub

问题2.rar (10.05 KB, 下载次数: 2)
回复

使用道具 举报

发表于 2015-10-10 16:51 | 显示全部楼层
对于负值(比如C3),按excel默认方式处理的,即返回"连续#"。
回复

使用道具 举报

 楼主| 发表于 2015-10-10 17:01 | 显示全部楼层
爱疯 发表于 2015-10-10 16:51
对于负值(比如C3),按excel默认方式处理的,即返回"连续#"。

对,就是这样的,谢谢大神指导!我再研究一下代码!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-26 05:18 , Processed in 0.484215 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表