Excel VBA – 两个值之和

我有一个报告,我试图得到一个dynamic的行数总和,以产生一个小计。

If Cells(s, 1).Value = "start" Then If Cells(r, 1).Value = "subtotal" Then 'Set the Monthly Subtotal Formulas Cells(r, 44) = "=SUM(AR" & Trim(Str(s)) & ":AR" & Trim(Str(r - 1)) & ")" Cells(r, 46) = "=SUM(AT" & Trim(Str(s)) & ":AT" & Trim(Str(r - 1)) & ")" 'Set the Weekly Subtotal Formulas Cells(r, 48) = "=SUM(AV" & Trim(Str(s)) & ":AV" & Trim(Str(r - 1)) & ")" Cells(r, 52) = "=SUM(AZ" & Trim(Str(s)) & ":AZ" & Trim(Str(r - 1)) & ")" 'Set the Daily Subtotal Formulas Cells(r, 54) = "=SUM(BB" & Trim(Str(s)) & ":BB" & Trim(Str(r - 1)) & ")" Cells(r, 56) = "=SUM(BD" & Trim(Str(s)) & ":BD" & Trim(Str(r - 1)) & ")" 'Set the Hourly Formulas Cells(r, 60) = "=SUM(BH" & Trim(Str(s)) & ":BH" & Trim(Str(r - 1)) & ")" Cells(r, 62) = "=SUM(BJ" & Trim(Str(s)) & ":BJ" & Trim(Str(r - 1)) & ")" Cells(r, 1) = "" End If Cells(s, 1) = "" End If 

基本上,每个工作组都在单元值“开始”和“小计”之内。 我怎样才能find's'或行号,并在公式中使用?

大多数情况下,Excel的内置小计function应该足够了


如果您确实需要使用VBA解决scheme,而不知道如何遍历数据中已经存在的所有“小计”标签,请将代码置于如下循环中:

 header_column = Intersect(ActiveSheet.Range("A:A"), ActiveSheet.UsedRange).Value2 s = 1 For r = 1 To UBound(header_column) If header_column(r, 1) = "start" Then s = r End If If header_column(r, 1) = "subtotal" Then ' ... do your stuff here ... ' ' s = r ' if the next "start" tag always follows a subtotal tag, no need for the "start" tags at all, just uncomment this line just before End If End If Next 

PS:不需要"string" & Trim(Str(integer)) ,使用"string" & integer