【发布时间】:2016-06-14 12:04:02
【问题描述】:
我的任务是用几十个数据透视表重新组织一个极其凌乱的 Excel 文件。重组的一部分将涉及在同一张表上和新表上移动数据透视表,以便为它们随着时间的推移而增长创造空间。但是,使用 getpivotdata() 函数的数据透视表引用被硬编码到数据透视表的位置。
我一直在尝试通过使用自定义函数来接受数据透视表的名称并返回其位置来解决此问题,以便在 getpivotdata() 函数中使用,以允许我在不引用数据的情况下移动数据透视表桌子坏了。我尝试返回位置的字符串版本和指定位置的范围对象,但这两者都给了我参考错误。到目前为止,我最成功的函数返回了一个可透视的对象,虽然它没有给我一个引用错误,但无论我尝试什么,它都只返回 0 作为数据
这是当前代码:
Public Function pivotNameToLoc(PTName As String) As PivotTable
Dim WS As Worksheet, PT As PivotTable
For Each WS In ActiveWorkbook.Worksheets
For Each PT In WS.PivotTables
If PT.Name = PTName Then
pivotNameToLoc = PivotTable
Exit Function
End If
Next PT
Next WS
End Function
这是在单元格公式中调用函数的方式
=GETPIVOTDATA("Data field",pivotNameToLoc("Name of table"),"other","fields")
【问题讨论】:
标签: vba excel excel-formula