SUBTOTAL超过254行

我通过预算数据通过VBA自动生成电子表格。 行是可变的。 我为R1C1公式使用以下代码。 variablesr是一个行计数器。

'----------------- 'Subtotal formula '----------------- 'Build formula string formulaString = "=SUBTOTAL(109" For i = 13 To r - 13 formulaString = formulaString & ",R[" & i & "]C" i = i + 11 Next i formulaString = formulaString & ")" 'Subtotal formulas .Range("I5:U6").FormulaR1C1 = formulaString 

这很好,直到引用超过了254.是否有一种简单的方法来构build这个R1C1公式,例如:对于范围I5中的每个单元格:U6,SUBTOTAL 109每隔13行到最大行? 如果有一个简单的答案,你可以请解释一步一步? 谢谢。

如果您不能对数据进行sorting以避免这种情况发生,或者在用户定义的函数中运行总和,则可以添加第二个循环来计数,直到254,然后当您键入254时,closures公式string并重新打开一个,如在此更新中码:

  'Build formula string formulaString = "=SUBTOTAL(109" lCount=1 For i = 13 To r - 13 formulaString = formulaString & ",R[" & i & "]C" i = i + 11 lcount=lcount+1 if lcount>250 then formulaString = formulaString & ")+ SUBTOTAL(109" lcount=1 end if Next i formulaString = formulaString & ")" 'Subtotal formulas .Range("I5:U6").FormulaR1C1 = formulaString 

总共第13行的另一个select是使用MODSUMPRODUCT 。 这将不具有小计的function,如不总计隐藏行,但它将是一个更简单的公式,例如:

 =SUMPRODUCT(A1:A100*(MOD(ROW($A$1:$A$100),13)=0))