【发布时间】:2017-10-11 13:36:20
【问题描述】:
我一直在努力解决这个问题,请看看是否有人可以给我一些指导。
我有一张工作表,其中记录了一天中执行的活动(W 列),所以我每天都有一份报告。每个活动都有一个由下拉菜单(U 列)中列出的字母定义的类型,例如:'R' 表示 'Reporting','M' 表示 'Meeting' em> 等,以及以小时为单位的持续时间 (HH:mm)(S 列)。
我希望我的工作表做的是根据活动类型汇总所有活动的持续时间,并将结果存储在不同的单元格中。在附加的图片示例中,我必须有 3:30 小时用于 会议,4:30 用于 报告 和 2 小时用于 绘图 .
以下 SumIf 代码所做的是将所有小时数相加,但它不计算持续时间,只要持续时间是下一行中的时间与条件参数所在行的时间之间的差值.
Sub test_count_hours()
Range("E35").Value = WorksheetFunction.SumIf(Range("U8:U37"), "R", Range("S8:S37"))
End Sub
所以我的努力是让代码在事件的持续时间内计算。
已填写的工作表示例
【问题讨论】:
-
如果您需要代码方面的帮助,请将其包含在您的问题中。
-
你需要
SumIf,但是请提到@braX,发布你的代码或者你迄今为止尝试过的代码。 -
你是对的@Moacir,我已经编辑了我的问题,我只是觉得它太简单了,甚至不能包含它,但我错了。
-
现在你只需要让它遍历所有唯一的代码值,让它可以使用
x = Application.WorksheetFunction.CountIf(rng, c),条件可以是If x = 1 Then 'do the sumif'
标签: vba excel worksheet-function worksheet