zoukankan      html  css  js  c++  java
  • VBA当中的时间日期函数

    目前还没发现VBA中有直接的函数能够将完整的年月日时分秒的文本格式日期转换成日期型日期的,那只能使用间接实现的办法。用dateserial + timeserial的方法。因为dateserial和timeserial两个都是时间格式的,故可以直接相加,形成的效果和正常日期格式一致。如下图c和f,都是日期+时间形成的。那么再和其他的日期做比较就方便的多了。

    If Hour(Range("q" & ddfp)) >= 8 And Hour(Range("q" & ddfp)) < 16 Then
    ThisWorkbook.Sheets("运营日报").Range("r" & ddfp) = DateDiff("n", .Range("u" & dft), .Range("aa" & dft)) / 60 '订单分配用时,时间相隔小时数
    ThisWorkbook.Sheets("运营日报").Range("s" & ddfp) = DateDiff("n", .Range("aa" & dft), .Range("x" & dft)) / 60 '仓配交接用时,时间相隔小时数
    ThisWorkbook.Sheets("运营日报").Range("u" & ddfp) = WorksheetFunction.Sum(ThisWorkbook.Sheets("运营日报").Range("R" & ddfp & ":" & "T" & ddfp))

    ElseIf Hour(Range("q" & ddfp)) >= 16 And Hour(Range("q" & ddfp)) < 24 Then
    ThisWorkbook.Sheets("运营日报").Range("r" & ddfp) = 0
    ThisWorkbook.Sheets("运营日报").Range("s" & ddfp) = 0
    a = VBA.DateSerial(Year(Range("q" & ddfp)), Month(Range("q" & ddfp)), Day(Range("q" & ddfp)) + 1)   '日期函数,和worksheetfunction的date函数使用方法和效果都一样。
    b = VBA.TimeSerial(8, 0, 0)   '时间函数,和worksheetfunction的time函数方法和效果一样。
    c = a + b

    d = VBA.DateSerial(Year(Range("ab" & ddfp)), Month(Range("ab" & ddfp)), Day(Range("ab" & ddfp)))
    e = VBA.TimeSerial(Hour(Range("ab" & ddfp)), Minute(Range("ab" & ddfp)), Second(Range("ab" & ddfp)))
    f = d + e

    h = Hour(f - c) + Minute(f - c) / 60        '小时数= 小时数+分钟数/60

  • 相关阅读:
    hdp3.1 hive 3.0的使用记录
    大数据相关的面试题(摘自网络)hbase,kafka,spark
    记一次ZOOKEEPER集群超时问题分析
    git 常用的撤销操作
    角色权限管理与数据权限管理
    spark examples 导入idea并测试
    spark restful 作业提交
    Redhat 7.4更新为Centos7的yum并安装docker-ce
    提醒,处理字符串和文件的时候一定要注意编码
    spark 作业提交
  • 原文地址:https://www.cnblogs.com/shida-liu/p/9517133.html
Copyright © 2011-2022 走看看