枢轴双击 – 显示详细信息事件

有什么方法可以捕获枢轴双击事件吗? (在另一张纸上生成详细视图的事件。)

有什么办法可以看到选定的枢轴的整个数据源作为一个数据表?

我正在使用C#,VSTO编程。

以下是你如何做vba。 将这些代码放在工作表的代码模块中:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim pt As Excel.PivotTable On Error Resume Next Set pt = Target.PivotTable If Err.Number = 0 Then MsgBox "captured" 'to cancel uncomment next line 'Cancel = True End If End Sub 

编辑:“我正在寻找双击事件后,因为我需要捕获新的工作表上的值的范围。

试试这个。 把它放在ThisWorkbook模块。 它使用模块级别的variables来跟踪数据透视是否被双击并在NewSheet事件中检查。

 Private PivotDoubleClicked As Boolean Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Dim pt As Excel.PivotTable On Error Resume Next Set pt = Target.PivotTable If Err.Number = 0 Then PivotDoubleClicked = True End If End Sub Private Sub Workbook_NewSheet(ByVal Sh As Object) If PivotDoubleClicked Then MsgBox "new sheet from pivot double-click" PivotDoubleClicked = False End If End Sub 

我相信你对Range对象的ShowDetail属性感兴趣。

要获取整个数据集,可以为数据透视表的DataBodyRange设置该属性。

 Excel.PivotTable pivotTable = (Excel.PivotTable)Globals.Sheet3.PivotTables(1); pivotTable.DataBodyRange.ShowDetail = true; 

编辑 :每注释,如果你想要数据透视表呈现的数据集,你必须编写一个方法,使用PivotCache来确定SourceType和取决于SourceType的types相反的数据。 没有属性的PivotTable PivotCachePivotTable PivotCache返回一个ADODB.RecordSet无论SourceType ,更less的.NET DataTable