excel - 使用 vba 宏从数据透视表中选择字段

标签 excel vba pivot-table

我使用 vba 创建了一个数据透视表。我需要帮助理解以下几点。

1:我想使用某些过滤器选择(复制)值(例如:基础价格
对于工具类型 = OPTCUR,符号 = GBPUSD)。基本上是公式的 VBA 替代品

GETPIVOTDATA("Underlying_price",$C$4,"Instrument Type","OPTCUR","Symbol","GBPUSD")

2:我想在不知道单元格详细信息但不知道上述标准的情况下设置“显示详细信息=真”。

3:当我们设置“show detail=True”时,会打开一个新工作表。我想将此表分配给类型工作表的变量。

下面是我的数据透视表的 SS。和表名:="My_Pivot"

enter image description here

最佳答案

您可以通过 PivotTable.GetPivotData 获得相关单元格
包含此单元格详细信息的新工作表由 Range.ShowDetail = True 显示.
紧接着,新的 ActiveSheet是通缉犯。

这是一个获取所需工作表的函数,其中包含指定数据字段的详细信息:

Private Function GetDetailSheet(pt As PivotTable, Val1 As String, Val2 As String) As Worksheet
    Dim myCell As Range
    With pt
        Set myCell = .GetPivotData(.DataFields(1).Name, _
            .RowFields(1).Name, Val1, _
            .RowFields(2).Name, Val2)
    End With
    myCell.ShowDetail = True
    Set GetDetailSheet = ActiveSheet
End Function

它可以这样使用:
Private Sub Test()
    Dim ws as Worksheet
    Set ws = GetDetailSheet(ActiveSheet.PivotTables("My_Pivot"), "OPTCUR", "GBPUSD")
    ws.Name = "Details OPTCUR GBPUSD"
End Sub

关于excel - 使用 vba 宏从数据透视表中选择字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55700036/

相关文章:

vba - 使用 VBA 自动过滤多列,使用来自不同工作表的值

c# - Excel 互操作货币格式

html - VBA中电子邮件正文的字体样式

Excel - 如何确保在单元格中输入一个值时,另一个值会被清空(反之亦然)?

python - Pivot_table 来自列值中的列表

vba - 如何使用 VBA 从 Excel 中的单元格返回所有格式?

excel - 在 VBA Excel 输入框中屏蔽密码

excel - 在 VBA 中更改 HTML 电子邮件正文字体类型和大小

python - 如何将聚合函数应用于 Pandas 中数据透视表的所有列

excel - 枢轴计算公式 : SUM(Field1)/AVG(Field2)