使用VBA将新列添加到数据透视表中

我是Excel VBA的新手,现在我在处理数据透视表时遇到困难。 数据透视表用于统计得分和得分的发生

  • 我已经完成了数据透视表中的平均函数。 (COMP)
  • 现在我想分割分数的发生范围。 例如,有多less人的得分在> = 80,或> = 70,或> = 60,甚至<60(失败)
  • 在此之后,我也要计算通过的比率

以下是一些必须使用数据透视表的条件:

  • 一个经理有很多领导,一个领导有很多成员,成员参加考试并计分。
  • 因此,成员的分数观点应该与经理和领导者相结合,以便看到每个经理的数据测量。

以下是使用Pivot Table的VBA代码来达到我的要求:

Private Sub CommandButton1_Click() Dim objTable As PivotTable, objField As PivotField Dim ws As Worksheet Dim wsPivot As Worksheet ActiveWorkbook.Sheets("Sheet1").Select Range("A1").Select Set objTable = Sheet1.PivotTableWizard ' Specify row and column fields Set objField = objTable.PivotFields("Creator's Tower Lead") objField.Orientation = xlRowField Set objField = objTable.PivotFields("Creator's Manager") objField.Orientation = xlRowField Set objField = objTable.PivotFields("Scores") objField.Orientation = xlColumnField 'Set objField = objTable.PivotFields("Average Score") 'objField.Orientation = xlRowField 'Set objField = objTable.PivotFields("Score>=80") 'objField.Orientation = xlRowField 'Set objField = objTable.PivotFields("Score 70-79") 'objField.Orientation = xlRowField 'Set objField = objTable.PivotFields("Score 60-69") 'objField.Orientation = xlRowField 'Set objField = objTable.PivotFields("Score <60") 'objField.Orientation = xlRowField 'Set objField = objTable.PivotFields("Pass Rate (Score >60)") 'objField.Orientation = xlRowField ' Specify a data field with its summary ' function and format. With objTable Set objField = objTable.PivotFields("Scores") objField.Orientation = xlDataField objField.Function = xlAverage End With With objTable Set objField = objTable.PivotFields("Scores") objField.Orientation = xlDataField objField.Function = xlCount End With 'With objTable ' Set objField = objTable.PivotFields("Scores") ' objField.Orientation = xlDataField ' Select Case objField ' Case Scores > 80 ' objField.Function = xlCount ' Case Scores > 70 ' objField.Function = xlCount ' Case Scores > 60 ' objField.Function = xlCount ' Case Else ' objField.Function = xlCount ' End Select 'End With End Sub 

我真的很沮丧得到数据透视表中的分数范围。 而一些专家build议我使用第二行(添加一个新的列),但我试过了,但仍然无法正常工作。 由于我的堆栈溢出声望不会超过10分,所以我不能上传我的快照来使其更清晰,希望我的描述可以帮助你理解这个问题。 提前致谢。

Excel提供了适用于大多数情况的分组function。 对于这种types的示例,您可以指定要分组的范围。 在VBA中做到这一点就像获取对字段中的一个单元格的引用并在其上调用Group一样简单。

这是代码

 Sub GroupPivot() Range("D3").Group Start:=60, End:=90, By:=10 End Sub 

这是一个正常的菜单和分组调用的结果的图像。

结果