Tag: 数据透视表

关于数据透视表的报告 – 获取切片器,图表和filter的信息

我正在处理大量的数据透视表,数据透视图,切片器和filter的大型报告系统。 所以为了确保所有的数据透视表都有正确的来源以及哪些切片器适用于每一个切片 ,我开始研究一个代码,为每个数据透视表汇总有用的信息: Sub Test_2_Pt_Report_by_sheet() ThisWorkbook.Save Application.ScreenUpdating = False Dim pT As PivotTable, _ Sl As Slicer, _ RWs As Worksheet, _ Ws As Worksheet, _ pF As PivotFilter, _ pFL As PivotField, _ HeaDers As String, _ TpStr As String, _ Sp() As String, _ A() ReDim A(20, 0) Set RWs = ThisWorkbook.Sheets("PT_Report") HeaDers […]

设置PivotItem.Visible = false时无法设置PivotItem类的Visible属性

我想使PivotItem.Visible = False但我不断收到错误: 无法设置PivotItem类的Visible属性 我尝试了所有在互联网上find的解决scheme,但似乎没有任何工作 Sub FloorCompareSetter() Dim pt As PivotTable Dim pf As PivotField Dim pi As PivotItem Dim PivotSheet As Worksheet Set PivotSheet = ThisWorkbook.Worksheets("PIVOT") PivotSheet.PivotTables("PivotTable5").RefreshTable Set pt = PivotSheet.PivotTables("PivotTable5") pt.PivotCache.MissingItemsLimit = xlMissingItemsNone Set pf = pt.PivotFields("Period") For Each pi In _ pt.PivotFields("Period").PivotItems Select Case pi.Name Case Is = "1601A" pi.Visible = True […]

共享使用数据模型构build的数据透视表的PivotCache

我只是清理我的工作簿,我已经使用下面的代码来巩固我的PivotCaches(我有大约200清洁之前)。 Sub changeCache() Dim ws As Worksheet Dim pt As PivotTable Dim pc As PivotCache Dim first As Boolean On Error Resume Next For Each ws In ActiveWorkbook.Worksheets ws.Activate For Each pt In ActiveSheet.PivotTables If first = False Then Set pc = pt.PivotCache first = True End If pt.CacheIndex = pc.Index Next pt Next ws […]

使用VBA将值设置为.Function

我目前有一个function设置,将所选的数据透视表的所有值平均更改。 它工作正常,我已经组装了一个表格,通过一个价值,工作得很好。 在这一点上,我想要做的就是让它决定要把价值转化成什么。 然而,我仍然得到一个Type-Mismatch错误。 这是因为它正在被读作一个string。 我怎么能调整呢? Private Sub CommandButton1_Click() MsgBox xl & ListBox1.Value Dim ptf As Excel.PivotField With Selection.PivotTable .ManualUpdate = True For Each ptf In .DataFields With ptf .Function = "xl" & ListBox1.Value 'xlAverage works here .NumberFormat = "#,##0" End With Next ptf .ManualUpdate = False End With End Sub Private Sub ListBox1_Click() End […]

如何防止数据透视图成为图纸副本上的常规图表?

使用Excel 2010,我写了一些VBA,将选定的工作表从主工作簿复制到客户端工作簿。 该代码可以很好地复制数据与数据相关联的数据表和数据透视表的数据表以及具有一个或多个数据透视图的图表到新的工作簿。 问题在于,在目标工作簿中,图表不再是PivotCharts,它们是常规图表,其源数据范围为空。 主数据透视图的源数据已填充,但呈灰色,因此不可编辑。 在将工作表从一个工作簿复制到另一个工作表时,立即出现此问题(在以下行上: XLMaster.Sheets(SlideRS.Fields(2).Value).Copy After:=XLClinic.Sheets(XLClinic.Sheets.Count) )我将包含调用Subs的代码。 到达这些线时,图表已经被打破 问题是三个部分: 我可以防止将数据透视图转换为复制中的常规图表吗? 即有没有一个标志/设置。 .Copy我错过了? 如果没有,我可以更新图表再次成为一个数据透视图沿线cchart.Chart.PivotLayout.PivotTable = mchart.Chart.PivotLayout.PivotTable ? 如果两者都失败,在复制的工作表中从头开始创build数据透视图的最佳方法是什么? 笔记: 这些是标准的Excel数据透视表,我没有使用PowerPivot。 不过,如果能解决这个问题的话,我可以接受。 刚刚在PowerPivot上做了一些小小的阅读,我不认为这会对我有所帮助,但是我仍然可以提出build议。 为了回应Jens的评论,原始数据和数据透视表都在一张纸上,而数据透视图在另一张纸上。 这是代码。 这是伟大的工作, 除了复制一个完整的数据透视图作为数据透视图的工作表。 While Not SlideRS.EOF 'loop through all the supporting data sheets for this graph sheet If SlideRS.Fields(1) <> SlideRS.Fields(2) Then 'the worksheet depends on something else, copy it first […]