我使用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”
你得到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
如果您不想使用(hideos)GETPIVOTDATA,那么有适合您的解决方案!它被称为CUBEVALUE。这有点难以掌握,但一旦完成,你的报告和数据透视表就达到了一个全新的水平。见这里:https://www.excelcampus.com/cubevalue-formulas/ 是的,这是一篇很长的文章,但它绝对值得付出努力,因为它可以让您指向特定的数据点,而不是特定的单元格。
掌握之后,将VBA代码添加到“已更改”的单元格事件并更改某个工作表的可见性状态只需几分钟。