Excel精英培训网

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

[已解决]时间累加取整数

[复制链接]
发表于 2015-12-14 16:04 | 显示全部楼层 |阅读模式
本帖最后由 一成不变变 于 2015-12-14 18:42 编辑

请帮忙,当前时间与Range("B" & m)相减乘以200,代码怎样写,请帮忙


Public Sub 时间()
z = Columns("A").Find("*", , , , , xlPrevious).Row
For m = 2 To z

   If Range("A" & m) < Range("B" & m) Then
          h = (Range("B" & m) - Range("A" & m)) * 24
       Else
          h = (Range("B" & m) - Range("A" & m)) * 24 + 24
    End If
    i = Application.WorksheetFunction.Ceiling(h, 0.5)
    Range("C" & m) = i * 100

    bj = (Application.WorksheetFunction.Text(Now - Range("B" & m), "[m]"))
    Range("D" & m) = (Application.WorksheetFunction.Ceiling(bj, 0.5)) * 200

      Next
End Sub
最佳答案
2015-12-15 16:28
按你题意,附加费用应该是小时数*200.
  1. Sub grf()
  2.     arr = [a1].CurrentRegion
  3.     For i = 2 To UBound(arr)
  4.         t1 = arr(i, 1): t2 = arr(i, 2): t = Time
  5.         h1 = IIf(t2 > t1, t2 - t1, t2 - t1 + 1) * 24
  6.         h2 = IIf(t > t2, t - t2, t - t2 + 1) * 24
  7.         arr(i, 3) = Application.WorksheetFunction.Ceiling(h1, 0.5) * 100
  8.         arr(i, 4) = Application.WorksheetFunction.Ceiling(h2, 0.5) * 200
  9.     Next
  10.     [a1].CurrentRegion = arr
  11. End Sub
复制代码
搜.png

df.zip

21.91 KB, 下载次数: 9

发表于 2015-12-14 16:26 | 显示全部楼层
看不懂题意,手动写下c2,d2,e2是啥?
回复

使用道具 举报

发表于 2015-12-15 16:26 | 显示全部楼层
你的代码改成这样是否正确:bj = (Application.WorksheetFunction.Text(Time - Range("B" & m), "[h]"))
重新编了一个代码,看看是否正确:
  1. Sub grf()
  2.     arr = [a1].CurrentRegion
  3.     For i = 2 To UBound(arr)
  4.         t1 = arr(i, 1): t2 = arr(i, 2): t = Time
  5.         h1 = IIf(t2 > t1, t2 - t1, t2 - t1 + 1) * 24
  6.         h2 = IIf(t > t2, t - t2, t - t2 + 1) * 24
  7.         arr(i, 3) = Application.WorksheetFunction.Ceiling(h1, 0.5) * 100
  8.         arr(i, 4) = Application.WorksheetFunction.Ceiling(h2, 0.5) * 100
  9.     Next
  10.     [a1].CurrentRegion = arr
  11. End Sub
复制代码
回复

使用道具 举报

发表于 2015-12-15 16:28 | 显示全部楼层    本楼为最佳答案   
按你题意,附加费用应该是小时数*200.
  1. Sub grf()
  2.     arr = [a1].CurrentRegion
  3.     For i = 2 To UBound(arr)
  4.         t1 = arr(i, 1): t2 = arr(i, 2): t = Time
  5.         h1 = IIf(t2 > t1, t2 - t1, t2 - t1 + 1) * 24
  6.         h2 = IIf(t > t2, t - t2, t - t2 + 1) * 24
  7.         arr(i, 3) = Application.WorksheetFunction.Ceiling(h1, 0.5) * 100
  8.         arr(i, 4) = Application.WorksheetFunction.Ceiling(h2, 0.5) * 200
  9.     Next
  10.     [a1].CurrentRegion = arr
  11. End Sub
复制代码

评分

参与人数 1 +1 收起 理由
一成不变变 + 1 很给力

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 18:45 , Processed in 0.300208 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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