使用vba宏从数据透视表中选择一个字段

问题描述 投票:1回答:2

我使用vba创建了一个数据透视表。我需要帮助理解下面提到的要点。

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

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

2:我想在不知道细胞细节的情况下设置“show detail = True”,而不是上面提到的标准。

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

下面是我的数据透视表的SS。和TableName:=“My_Pivot”

enter image description here

excel vba pivot-table
2个回答
3
投票

你得到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

0
投票

如果您不想使用(hideos)GETPIVOTDATA,那么有适合您的解决方案!它被称为CUBEVALUE。这有点难以掌握,但一旦完成,你的报告和数据透视表就达到了一个全新的水平。见这里:https://www.excelcampus.com/cubevalue-formulas/ 是的,这是一篇很长的文章,但它绝对值得付出努力,因为它可以让您指向特定的数据点,而不是特定的单元格。

掌握之后,将VBA代码添加到“已更改”的单元格事件并更改某个工作表的可见性状态只需几分钟。

© www.soinside.com 2019 - 2024. All rights reserved.