Tag: 数据透视表

数据透视表展开“值”VBA

我试图自动添加字段到已经创build的数据透视表。 这些字段将是“期间1的总和”…“期间360的总和”。 我已经有了1-60的时间,但是我失去了61-360。 手动拖放300次将是一件痛苦的事情。 所以我写了一个macros,但我得到的错误: 无法获得枢轴字段类的枢轴项目属性 由于数据透视表已经创build(这是一个很多格式怪异的大表),我不想改变任何东西。 我只是想把这些时期加上period61-period360的值。 我附上我的代码。 任何人可以给我的帮助将是非常感谢,因为我不知道我做错了什么,我试图不要太沮丧。 非常感谢你提前。 这是我的代码: '——————— Expand_Pivot_to_360M Macro——————-' Sub Expand_Pivot_to_360M() ' Setting Pivot field classes to the "unable to get pivot items property of the pivot field class" error Sheets("Monthly Summary").Select With ActiveSheet.PivotTables("PivotTable1").PivotFields("universe") .Orientation = xlRowField .Position = 1 End With With ActiveSheet.PivotTables("PivotTable1").PivotFields("buckets_break") .Orientation = xlRowField .Position = […]

从多个dynamic合并范围创buildExcel VBA自动数据透视表

我试图自动从一个dynamic的数据表中创build一个数据透视表的过程,这个数据表总是以表格上方的一个date开始的。 CountExpos计算数据范围中的date数,以便代码知道需要将多less个数据表input到具有多个合并范围的数据透视表中。 然后,代码根据第一个date开始的位置生成一串数据范围,并根据有多less个expo计数将相应的数据范围添加到string中。 然后它build立一个string(statString),它可以直接放置在从SourceData开始的数据透视表的创build中,以版本结束,然后代码应该输出数据透视表,而是返回运行时错误'1004':Application定义或对象定义的错误。 即使我直接将statString的输出复制粘贴到数据透视表代码中,数据透视表也会被创build,但是当我inputstatString时,代码将无法运行。 我会感谢任何帮助,谢谢! Sub CountExpos() Dim lastRow As Long Set sht = ThisWorkbook.Worksheets("Orc Text") For i = 1 To 1000 If IsEmpty(sht.Cells(i, 1)) = False Then lastRow = i End If Next i Dim expoCount expoCount = 0 For J = 1 To lastRow If IsDate(sht.Cells(J, 1)) = True Then expoCount = […]

如何在特定数据透视字段上应用筛选器时运行macros

我已经看到如何在数据透视表上应用filter时调用macros: 如何在透视表的select更改时自动运行macros 但我有一个不同的要求,我有5个数据透视字段,每个filter更改具有不同的function来执行。 所以,我想知道是否有可能为每个Pivot字段分配一个不同的macros? 我知道我可以使用worksheet_Change函数,然后使用范围作为参数来检查filter是否应用在该范围内。 但是这里的问题是,我将在macros中移动Pivot Fields到Column标签和行标签,随后调用其他的macros。 我不希望这样的事情发生。 这就是我正在寻找一种方法来检测一个PIVOT FIELD上的Pivot Filter变化的原因

Excel 2013删除损坏的数据模型

我使用数据透视表和图表创build了一个超简单的仪表板式工具 – 这个想法是“保持简单,不会中断”。 但是,当我保存并closures工作簿,并试图再次打开并刷新数据时,我得到这些错误 每当我尝试做与这些枢纽相关的任何事情时,都会popup错误消息。 如何修复或删除此工作簿中的数据模型以使其再次可用?

创build数据透视表时出错

我一直在debugging这个代码几个小时创build一个数据透视表,但不幸的是,我无法弄清楚这个问题。 它持续显示, Object doesn't support this property or method. Sub CreatePivotTable() Dim sht, srcSheet As Worksheet, ccsheet As Worksheet Dim pvtCache As PivotCache Dim pvt As PivotTable Dim StartPvt As String Dim SrcData As String Dim lrow As Long Set srcSheet = ThisWorkbook.Sheets("Document Raw") lrow = srcSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1 Set ccsheet = ThisWorkbook.Sheets("Character Count") […]

Excel:根据单元格值将图表放在前面

我创build了一个用于显示客户财务数据的仪表盘。 问题是这样的:其中一个图表是按照这样的年表总计的: 但是,这并不总是适合所有的切片机。 例如,如果我有一个人员计数切片机,累计总图将是无用的,但平均人员计数图将是有价值的。 我想弄清楚如何根据一个单元格值(这是由切片机支配)具有适当的图表显示。 例如,如果select人员计数切片机,则将平均图表放在前面。 否则,将总图带到前面。 我已经尝试将下面的内容放在ThisWorkbook中,但没有成功: Private Sub ChartDisplay() If Sheets("Sheet5").Range("B1") = "Headcount" Then ActiveSheet.Shapes("chrtYearTotal").ZOrder msoBringToFront Else: ActiveSheet.Shapes("chrtYearAvg").ZOrder msoBringToFront End If End Sub

“无法设置PivotField类的CurrentPage属性”错误

我有一个logging的macros,应该将数据透视表中的业务单元从全部更改为欧洲整合,但每当我运行macros,我得到“无法设置CurrentPage属性”错误。 我的代码: ActiveSheet.PivotTables("ECBv1.0") _ .PivotFields("[Business_Unit].[Business Unit Hierarchy].[Business]") _ .ClearAllFilters ActiveSheet.PivotTables("ECBv1.0") _ .PivotFields("[Business_Unit].[Business Unit Hierarchy].[Business]") _ .CurrentPage = "[Business_Unit].[Business Unit Hierarchy].[Business].&[European Consolidation]" 有什么我可以做的,以解决这个错误?

如何根据DataField PivotField的内容对数据透视表进行sorting/sorting?

我有一页PivotData(源数据),用于在另一个工作表上创build数据透视表。 我是这样做的: var pch = _xlBook.PivotCaches(); int pivotDataRowsUsed = _xlBook.Worksheets["PivotData"].UsedRange.Rows.Count; int pivotDataColsUsed = _xlBook.Worksheets["PivotData"].UsedRange.Columns.Count; string lastColWrittenAsAlpha = ReportRunnerConstsAndUtils.GetExcelColumnName(pivotDataColsUsed); string endRange = string.Format("{0}{1}", lastColWrittenAsAlpha, pivotDataRowsUsed); Range sourceData = _xlBook.Worksheets["PivotData"].Range[string.Format("A1:{0}", endRange)]; PivotCache pc = pch.Create(XlPivotTableSourceType.xlDatabase, sourceData); PivotTable pvt = pc.CreatePivotTable(_xlPivotTableSheet.Range["A6"], "PivotTable"); pvt.MergeLabels = true; // The only thing I noticed this doing was centering the heading labels […]

使用VBA根据数据透视表中的源名称更改列标题

我正在编写代码来循环透视表中的每个透视字段,然后根据源名称更改“自定义名称”。 当我logging更改列标题时收到以下代码: Range("J5").Select ActiveSheet.PivotTables("PivotTable1").PivotFields("Man-Hours Oct-16").Caption _ = "Man-Hours Nov-16" 问题是,自定义名称更改月份,所以我想引用基于源名称,而不是标题的透视字段。 我编写了一个代码,它成功地遍历每个数据透视表字段并标识源代码,但是,当它试图修改标题时,我收到一条错误消息: Dim CurrentDate As Date Dim CurrentMonth As String Dim CurrentYear As String Dim pf as PivotField CurrentDate = Range("CurrentDate") CurrentMonth = Format(CurrentDate, "MMM") CurrentYear = Format(CurrentDate, "YY") For Each pf In PivotSheet.PivotTables("PivotTable1").PivotFields 'Total Forecast If pf.SourceName = "Man-Hours 0" Then pf.Caption = "Man-Hours " […]

如何在Excel 2013中隐藏选定的透视列

在Excel 2013中,我试图创build一个数据透视表,它只显示不为空的列(没有空/零) – “Cel DS”没有历史logging,所以我不想介绍它。 但是,我不想完全删除“Cel DS”,因为在“bieżący”标题下有第二栏中的数据。 Furtheromore,我不能删除整个历史,因为我有不同的列'suma zwartość',我想表明。 是否可以只隐藏标有红色箭头的列? (放大图像)