将总计添加到行标题符合条件的列

时间:2015-02-16 09:19:39

标签: excel vba

事先为此道歉,我对VBA很新,我确信这是我正在努力的简单编码。

根据用户定义的月数(刚刚输入到ssheet),我有一行列标题给出月份编号和上个月之后的标题“总计”。

即。用户说12个月,单元格A2 =“1月15日”,M2 =“总计”。

在标题下方,用户会添加一些销售数据。

我需要做的是使用VBA将总数添加到header =“total”的每行数据的末尾。

我在想一个If然后有意义,但我正在努力如何让宏将公式放在正确的单元格中,然后让公式看看变量范围。这是迄今为止我提出的最好的(请不要笑!)

Sub Add_total()
Dim criteria As String
criteria = Range("A:A").Value
If criteria = "Total" Then
Range("12:12").Select
ActiveCell.Formula = "=sum($c12:c12)"
End If
End Sub

我想要的是,例如,M2 =“总计”,则C12 =总和(c1:L12)

我意识到最简单的方法就是让用户自己添加总数或者在工作表的左侧有一个总列,但这是跨越业务需要限制手动输入/保证准确性计算方法。

任何帮助非常感谢。

2 个答案:

答案 0 :(得分:0)

为什么不简单地将单元格M3放入单元格=sum(A3:L3)并向下复制?

如果你需要它在VBA中应该这样做:

Sub testsum()
i = 3 'start in cell3
While Not IsEmpty(Cells(i, 1))
Cells(i, 13) = WorksheetFunction.Sum(Range((Cells(i, 1)), (Cells(i, 12))))
i = i + 1
Wend
End Sub

答案 1 :(得分:0)

非常感谢 - 不是我需要的,但你指出了我的方向。最后到了下面:

Sub Total() Set Find_total = Range("6:6").Find("Total",_
LookIn:=xlValues,searchorder:=xlByColumns) 
Set Revenue_total = Find_total.Offset(rowoffset:=3, columnoffset:=-1) 
Set Revenue_cell = Find_total.Offset(rowoffset:=3, columnoffset:=0)
Revenue_cell = WorksheetFunction.Sum(Range((Cells(9, 2)), Revenue_total)) 
End Sub

再次感谢