Excel交流网
  • 设为首页|收藏本站|手机版
  • Excel-教程-技巧-培训视频

  • 网站首页
  • Excel教程
  • 关于我们
  • 新闻动态
  • Excel资源
  • 招贤纳士

Excel教程

Excel操作
Excel函数
Excel图表
Excel VBA
Excel 行业应用

联系方式

Excel中国 联系方式
电  话:400-855-3990
邮  编:528400
Email:support@zstm.com
网  址:www.excel-cn.com

当前位置:网站首页 > Excel教程 > Excel VBA
Excel VBA

EXCEL VBA秒转为时分秒的函数后改转换为天时分秒的通用函数

EXCEL VBA秒转为时分秒的函数后改转换为天时分秒的通用函数


'秒转为时分秒的函数

'后改进为秒转换为天时分秒的通用函数

'2种格式选择

'intType为0 天时分秒 其中 秒分时 2位对齐 且显示最全的内容 ,没有内容的补齐0  '000天00小时45分02秒

'intType为1 天时分秒 其中 秒分时 按实际长度  '45分2秒

‘来源:Excel中国 作者: tmtony 转载请务必保留此行 http://www.excel-cn.com/tip/237-cn.html

Public Function SecToDHMS(lngSec As Long, Optional intType As Integer = 0)

 

 Dim lngMod1 As Long

 Dim lngMod2 As Long

 Dim lngMod3 As Long

 Dim strFormat As String

 Select Case intType

    Case 0

       strFormat = "00" '秒分时 2位对齐 且显示最全的内容 ,没有内容的补齐0  '000天00小时45分02秒

    Case 1

       strFormat = "0" '秒分时 按实际长度  '45分2秒

       

 End Select

 

 If intType = 0 Then

             lngMod3 = (lngSec Mod 86400)

             lngMod2 = (lngSec Mod 3600)

             lngMod1 = (lngMod2 Mod 60)

             SecToDHMS = Format(Int(lngSec / 86400), "000") & "天" & Format(Int(lngMod3 / 3600), strFormat) & "小时" & Format(Int(lngMod2 / 60), strFormat) & "分" & Format(lngMod1, strFormat) & "秒"  '& IIf(lngMod1 = 0, "", lngMod1 & "秒")

 Else

        If lngSec < 60 Then

            SecToDHMS = Format(lngSec, strFormat) & "秒"

 

             

         ElseIf lngSec < 3600 Then

             lngMod1 = (lngSec Mod 60)

             SecToDHMS = Format(Int(lngSec / 60), strFormat) & "分" & Format(lngMod1, strFormat) & "秒"  '   'IIf(lngMod1 = 0, "", lngMod1 & "秒")

         

         ElseIf lngSec < 86400 Then

             lngMod2 = (lngSec Mod 3600)

             lngMod1 = (lngMod2 Mod 60)

             SecToDHMS = Format(Int(lngSec / 3600), strFormat) & "小时" & Format(Int(lngMod2 / 60), strFormat) & "分" & Format(lngMod1, strFormat) & "秒"  ' & IIf(lngMod1 = 0, "", lngMod1 & "秒")

         Else

             lngMod3 = (lngSec Mod 86400)

             lngMod2 = (lngSec Mod 3600)

             lngMod1 = (lngMod2 Mod 60)

             SecToDHMS = Format(Int(lngSec / 86400), "000") & "天" & Format(Int(lngMod3 / 3600), strFormat) & "小时" & Format(Int(lngMod2 / 60), strFormat) & "分" & Format(lngMod1, strFormat) & "秒"  '& IIf(lngMod1 = 0, "", lngMod1 & "秒")

         End If

 End If

 'SecToDHMS= (lngSec \ 86400) & "天" & (lngSec Mod (lngSec \ 86400) * 86400) \ 3600; "小时" & (lngSec Mod 3600) \ 60; "分" & s Mod 60; "秒"

End Function


如果直接在Excel 转换,则可以使用

例如:将100秒转成时分秒的格式


=TEXT(A1/86400,"h小时m分钟s秒")      0小时1分钟40秒


=TEXT(C1/86400,"d天h小时m分钟s秒")    0天 0小时1分钟40秒


=TEXT(C1/86400,"hh:mm:ss")     00:01:40


    点击次数:  更新时间:2017-05-19 08:06:18  【打印此页】  【关闭】
    上一条:改变制表习惯-数据透视表的应用  下一条:Excel快速筛选工具-切片器
    本站动态|在线留言|在线反馈|友情链接|会员中心|站内搜索|网站地图|网站管理

    中山市天鸣科技发展有限公司 版权所有 1999-2020 粤ICP备10043721号

    广东省中山市西苑广场富贵阁 528400

    QQ:4008553990 电话:0760-88315075

    Excel交流网主要交流Excel教程、Excel技巧、Excel培训、Excel函数公式、Excel图表以及Excel VBA,为网友提供一个最全的Excel交流网站

    Excel教程|Excel技巧|Excel培训|Excel函数公式|Excel图表|VBA

    Powered by MetInfo 5.3.12 ©2008-2022  www.metinfo.cn