我有一个带有工作表的Excel工作簿,该工作表包含一些公司模板标题,其下方有数据透视表。
此文档将用作数据透视表报告的模板,并且标头必须保持在数据透视表上方不变,但是,当将项目添加到“页面过滤器”时,数据透视表将尝试向上扩展并最终覆盖上面的标头行。
添加报表过滤器后,我需要数据透视表来向下扩展页面,而不是向上页面。
在查看是否存在和可以更改的设置以使数据透视表向下扩展页面后,我研究了如何使用VBA编写功能脚本。通过Visual Basic for Applications
屏幕将以下代码添加到工作表中,以检查数据透视表在每次更新时的位置,如果在报表中添加或删除了页面过滤器,则将其在页面上移或下移。将StartLineLet
&StartLineNum
变量设置为希望数据透视表或页面项目的左上角保留在的单元格地址。
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim StartLineLet As String
Dim StartLineNum As Integer
Dim DataAddr() As String
Dim PageAddr() As String
StartLineLet = "B"
StartLineNum = 6
DataAddr = Split(Target.TableRange1.Cells(1).Address, "$")
PageAddr = Split(Target.TableRange2.Cells(1).Address, "$")
If PageAddr(2) <> StartLineNum Then
Target.Location = "$" & StartLineLet & "$" & (DataAddr(2) + (StartLineNum - PageAddr(2)))
End If
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句