VBA-总和特定的单元格

时间:2018-10-22 10:25:45

标签: excel vba sum

如果问题的某些内容含糊不清,我事先表示歉意,但是我将力争做到尽可能具体。

我有一本excel工作簿,其中当前包含每日股票交易信息。每天的交易活动都包含在其自己的工作表中。下面的屏幕截图是一天交易活动工作表的示例/样机。

daily worksheet

工作簿中还有一个主工作表,其中包含每个客户的当日至今的交易数据和当月初至今的交易数据。我在下面附加了另一个示例屏幕截图:

master

考虑到这一点,是否可以使用VBA来检查每个日工作表中的客户名称,检查K栏的总佣金并汇总主工作表上的总数?

例如,如果客户A在2018年12月10日的交易量为50,000,在2018年10月13日的交易量为100,000,则在运行VBA之后其在主工作表上的当周收入将显示为150,000。

我目前在工作簿中确实有一个VBA,可以将总交易收入汇总到一个主工作表中,但是我想通过上述想法将其添加到VBA中。由于我无法弄清楚有关如何执行此操作的任何建议,将不胜感激。谢谢。

Sub AutoSum()
Dim wscount As Long
Dim i As Long
     wscount = ActiveWorkbook.Worksheets.Count
 For i = 1 To wscount
Sheets(i).Select
Range("K3").Select
 Selection.End(xlDown).Select
ActiveCell.Offset(2, 0).Select
Dim cel1 As String, cel2 As String
cel1 = ActiveCell.Offset(-2, 0).End(xlUp).Address
cel2 = ActiveCell.Offset(-1).Address
ActiveCell.Value = "=sum(" & (cel1) & ":" & (cel2) & ")"
Next i
End Sub

1 个答案:

答案 0 :(得分:0)

好吧,由于宏的复杂性,我无法帮助您,但是我建议您可以做什么:

  1. 您需要将所有客户都放在一个列表中(我想您已经在您的主表中了)
  2. 对于每个客户端,您需要找到每个工作表中的位置,因此,对于每个客户端,对于每个工作表,您都可以使用Application.WorkSheetFunction.Match,这样您就可以得到客户端所在的行(我们将命名为行)
  3. 然后,您将使用一个累积变量来保存每个工作表的总和,您可以编写totalsum = totalsum + worksheet(j).cells(row,11-> 这意味着K

最后,我将向您推荐一个表格,您在该表格中发布初始日期和最终日期,以便您根据日期获得价值

希望它会有所帮助