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