关闭Excel数据透视表子总计VB.NET

时间:2012-05-02 22:04:12

标签: .net vb.net excel

我在VB.NET中创建数据透视表并遇到了一个问题,我认为这个问题并不像它的结果那么困难。当我创建一个数据透视表时,它会为每一行添加小计,我不希望这样。在excel中,您只需拖动小计选项并告诉它不显示小计。我查看了它的VBA,这个格式有几行:

     ActiveSheet.PivotTables("Main Highway Pivot").PivotFields("Division"). _
    Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
    False, False)

这是一个令人惊讶的代码量,但这很好,所以我一直在尝试类似于VB.NET中的数据透视表

With ptTable
.ManualUpdate = True
.PivotFields("Division").orientation = Excel.XlPivotFieldOrientation.xlRowField
.PivotFields("Net Sales Amt").orientation = Excel.XlPivotFieldOrientation.xlDataField
.PivotFields("Division").Subtotals = false
.ColumnGrand = False
.RowGrand = True
.ManualUpdate = False
End With

我尝试了

的几种不同变体
 .PivotFields("Division").Subtotals = false

行,但运气不好。这是正确的代码,我指定错误的部分错了吗?为什么没有

.subtotal = false

让这更容易吗?

在任何情况下,对我来说似乎都很简单,但经过一番挖掘后我不知道如何修复它,所以任何帮助都会受到赞赏。

一如既往地谢谢你

1 个答案:

答案 0 :(得分:3)

以下是VBA的片段(来自http://www.pcreview.co.uk/forums/hide-subtotals-rowfields-pivot-table-t974940.html),可能有所帮助:

'=========================
Sub NoSubtotals()
'turns off subtotals in pivot table
'.PivotFields could be changed to
'.RowFields or .ColumnFields
Dim pt As PivotTable
Dim pf As PivotField
On Error Resume Next
For Each pt In ActiveSheet.PivotTables
For Each pf In pt.PivotFields
'First, set index 1 (Automatic) to True,
'so all other values are set to False
pf.Subtotals(1) = True
pf.Subtotals(1) = False
Next pf
Next pt
End Sub
'========================