gpt4 book ai didi

vba - 获取数据透视表的源范围

转载 作者:行者123 更新时间:2023-12-02 15:35:35 24 4
gpt4 key购买 nike

我正在构建一组每日更新的报告,供一些对 Excel (2010) 中的数据透视图和数据透视表不太了解的用户使用。我从数据库中自动提取数据中获取了数据,但为了使该信息有用(并且更易于使用),我想使用 VBA 生成数据透视表。

我已经生成了数据透视表,并且可以手动操作它们来创建相关图表。当我创建表格(全部在一张纸上)时,我给它们贴上标签(如果这有助于解决我的问题)。我遇到麻烦的地方是创建数据透视图,特别是设置数据源。

由于图表基于枢轴,枢轴的大小可能会根据现有数据而变化,因此我不能只指定固定范围作为源。命名范围也有同样的问题,因为我仍然不知道要指定名称的范围,除非我可以指定 PT 作为范围。

我尝试过类似的方法,但没有成功,因为我没有查看实际的“Range”对象:

Dim MyChartObject As ChartObject
Dim MyChart As Chart

'These variables are assigned elsewhere in the code.
Set MyChartObject = wksMainCharts.ChartObjects.Add( _
iChartLeft, iChartTop, iChartWidth, iChartHeight)
Set MyChart = MyChartObject.Chart
MyChart.SetSourceData wksMainPivot.PivotTables(PivotName).SourceData 'Fails; requires Range object
'More code to follow...

我确实知道这是错误范围的字符串表示,但我正在玩我自己能想到的东西。

本质上我想要的是this question相反 ,它寻求在指定范围内查找数据透视表。我还评论了this question ,但这并不完全是我正在寻找的(也没有提供答案)。

另外:我在这里询问一种获取 PT 范围的方法,我认为知道这一点很有趣,但最终,我只想创建数据透视图,所以如果有人想提供更好的方法比我开始的方法要好,我对此也完全持开放态度。

最佳答案

这就是你想要实现的目标吗?

Sub Sample()
Dim Chrt As Chart, pvtTbl As PivotTable

Set pvtTbl = ActiveSheet.PivotTables(1)

Set Chrt = ActiveSheet.ChartObjects(1).Chart

Chrt.SetSourceData Source:=pvtTbl.TableRange1
End Sub

所以你的这一行

MyChart.SetSourceData wksMainPivot.PivotTables(PivotName).SourceData

变成了

MyChart.SetSourceData wksMainPivot.PivotTables(PivotName).TableRange1

关于vba - 获取数据透视表的源范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14511227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com