我有一张包含时间值的表格。如果指定行中存在大于90分钟(1:30:00)的任何值,我需要在行尾添加差值(即它的大小)。因此,该框可以是空白的,可以只有一个单元格的值,或者可以添加多个值。我已经有For循环连续遍历每个单元格。我需要该部分来总结这些值。理想情况下,如果有一个嵌套循环为6行做6个单独的总和......
'Add break munutes
fp.Activate
Dim rng As Range
For Each rng In Range("B3:F3")
If rng.Value > TimeValue("1:31:00") Then
End If
Next rng
答案 0 :(得分:2)
如果您想避免VBA,实际上可以通过Excel公式来完成:
=SUMIF($B$3:$B$9,">"&1.5/24)-COUNTIF($B$3:$B$9,">"&1.5/24)*1.5/24
总结超过90分钟的所有值,然后从已计算的每个值的总数中减去90分钟。
答案 1 :(得分:2)
如果这是一个选项,我建议使用Excel公式,因为VBA解决方案有限制。
=SUMIF(B$3:B9-1/16,">0")
使用数组公式或更短一点(使用Ctrl + Shift + Enter输入):
public class Location
{
private String localDesc;
private Item localItem;
HashMap<String, Location> nbors = new HashMap<String, Location>();
public Location(String pDesc)
{
// initialise instance variables
localDesc = pDesc;
localItem = null;
}
public Location(String pDesc, Item pItem)
{
// put your code here
localDesc = pDesc;
localItem = pItem;
}
public Item getItem(){
return localItem;
}
public String getDescription(){
return localDesc;
}
public void addItem(Item i){
// Need help here
}
}
答案 2 :(得分:1)
很难说如果没有更多信息这是完全准确的,但这样的事情应该适合你:
unset()
答案 3 :(得分:1)
你说你想要连续的时间总和,然后定义B3:B9,所以我假设你的意思是列中的时间总和。 试试这个:
Dim i As Integer
Dim num1 As Date
For i = 3 To 9
If Cells(i, 2).Value > TimeValue("1:30:00") Then
num1 = Cells(10, 2).Value + Cells(i, 2).Value - TimeValue("1:30:00")
Cells(10, 2).Value = num1
End If
Next i
我已经定义了总和作为单元格B10的位置。您可以为每列创建类似的循环。我尝试了这个,它对我有用。