Excel VBA小计不是小计

时间:2017-12-09 00:42:55

标签: excel vba excel-vba subtotal

我正在尝试在Microsoft Office Excel 2013/2016中使用VBA中的小计功能。我使用以下代码:

'Copies mostly formatted Report to new Sheet for Report
'Sheets("Report").Select
Sheets("Report").Copy After:=Sheets(3)
Worksheets(4).Select
Worksheets(4).Name = "Report2"

'Modifies Date column to count days worked instead
Range("D1").FormulaR1C1 = "Days Worked"
Range("D2").Select
Range("D2").NumberFormat = "0"
Range("D2").FormulaR1C1 = "1"
Selection.AutoFill Destination:=Range("D2:D2500")

'Generates subtotals for Days Worked, Calls Taken, Call time, nextcallwaiting time, calls held, and time calls on hold
Worksheets(4).Activate
Range("E1").Select
Selection.End(xlDown).Select
ActiveCell.Offset(1, -1).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.Delete
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Subtotal GroupBy:=3, Function:=xlSum, TotalList:=Array(4, 6, 8, 10 _
                                                                          , 12, 14), Replace:=True, PageBreaks:=False, SummaryBelowData:=True

'ungroups these rows to allow easy data manipulation
Range("C1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Activate
Selection.Rows.Ungroup
Selection.Rows.Ungroup    '

包含错误结果(未预期)的图片。 我希望Subtotals功能可以制作小计....可能它运行得太快而无法正确查找并添加相同的代理统计数据吗?

我希望以附加方式列出总数(参见" Days Worked"列。如果代理工作超过一天,它有多个" 1天工作"行,但在小计操作期间没有将它们组合在一起),但它不是像小计函数那样将列合计。我究竟做错了什么?此错误的解决方法是什么?

B栏:C

中代理人的主管

-Column C:Agent(呼叫中心员工)

-Column D:工作天数(他们上周工作了多少天?

- 列E:登录(员工登录;屏幕截图中给出的示例)

-Column F:处理呼叫(他们接听了多少次呼叫)

- 列G:每次通话花费的平均时间[HH]:MM:SS格式

-Column H:呼叫总时间[HH]:MM:SS格式

- 列I:以[HH]:MM:SS格式

的时间

-Column J:以[HH]:MM:SS格式

的时间

-Column K:后面的列(故意空白)

enter image description here

编辑:这已经解决了。要使用小计VBA,必须将分隔项/实体(在本例中为“代理名称”)组合在一起。因此,在列中,您必须对最大的>最小的,A> Z或类似的东西进行排序,以便这些类似的记录靠近 PRIOR 来执行小计VBA。感谢所有正在调查这个问题的人!

0 个答案:

没有答案