小计VBScript

时间:2018-06-11 17:37:11

标签: excel vbscript

我有一个excel电子表格,如下所示(我将所有机密信息设为白色字体,因此请忽略空格)

enter image description here

总列位于第d列或第4列。我需要做的是对d列中的值进行小计,直到它到达“...- TOTAL”的行。我遇到的问题是在“...- TOTAL”行之后还有更多的行需要小计化为“...- TOTAL”,其中“...”是客户端的名称。我已经尝试了下面的代码,但我认为它停留在无限循环中,因为不是脚本运行5分钟而是结束,它根本没有结束。如果您需要更多信息,请告诉我。谢谢!

Do Until InStr(objExcel.Cells(c,2).Value, "TOTAL")
total = total + objExcel.Cells(e,4).Value
if InStr(objExcel.Cells(c,2).Value, "TOTAL") then 
    objExcel.Cells(c,4).Value = total
    total = 0
end if
Loop

1 个答案:

答案 0 :(得分:2)

正如我在评论中提到的,你应该在这里使用For Each循环,这样你就可以检查每一行第2列(B)中“总计”的值。类似的东西:

'Loop through each cell in column B
For Each rngCell in Range("B:B").Cells
    'Check to see if it contains "TOTAL" as part of it's value
    If Instr(rngCell.value, "TOTAL") Then
        'Set the value of the cell 2 columns over (Column D) and exit loop
        rngCell.Offset(,2).value = total
        Exit For
    End If
    'Collect and increment the total
    total = total + rngCell.Offset(,2).value
Next