关于VBA绘图函数的参数的疑问

[复制链接]
查看11 | 回复6 | 2021-1-27 06:25:44 | 显示全部楼层 |阅读模式
Chart.SetSourceDataSource:=Range(RChart.Offset(-2,0),RChart.Offset(-1,(CNum-1)))类似绘图函数的
SourceData为什么不能是自定义的数组或者DimAllElementsAsVariant
还有数据透视表的函数里
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase,SourceData:=_
这里的SourceData也必须是Range不能是上述自定义的数组或者DimAllElementsAsVariant
高手来指点下
分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:25:44 | 显示全部楼层
惭愧,被楼主唤来后,才发现自己机器上没安装office,以前用VBA时也没用过这两个方法。
有一个小建议,楼主不妨把你的问题描述再整理一下,最好配上些截图说明,这样对这方面问题有一定了解,但还不只很熟悉的网友,理解我的意思时就会容易很多的。
回复

使用道具 举报

千问 | 2021-1-27 06:25:44 | 显示全部楼层
我觉得这是对象自身决定的吧!


那些“图表”对象,都是只能从工作表中取源数据的,数据源的类型自然就要求为“Range”类型的对象。
如果你要用变量,如果变量(变量类型是Range或Variant)的“值”是符合要求的Range对象,应该是可以的吧!
如果参数值是简单的数组,肯定就不行了。

回复

使用道具 举报

千问 | 2021-1-27 06:25:44 | 显示全部楼层
你再SetSourceData上右键菜单\定义,就可以看到
SubSetSourceData(SourceAsRange,[PlotBy])
参数Source的类型就是Range啊!清清楚楚的有什么问题!
回复

使用道具 举报

千问 | 2021-1-27 06:25:44 | 显示全部楼层
引用1楼bcrun的回复:惭愧,被楼主唤来后,才发现自己机器上没安装office,以前用VBA时也没用过这两个方法。
有一个小建议,楼主不妨把你的问题描述再整理一下,最好配上些截图说明,这样对这方面问题有一定了解,但还不只很熟悉的网友,理解我的意思时就会容易很多的。

版主代码如下
Range("A1").Value=10
Range("B1").Value=4
Range("C1").Value=5
SetRChart=Range("H5")
ActiveSheet.Shapes.AddChart(xlPie,(RChart.Left+RChart.Width/2),RChart.Top,(RChart.Width*3),(RChart.Height*10)).Select
ActiveChart.SetSourceDataSource:=Range("$A$1:$C$1")//问题就在这里我必须事先设定这三个Range的值见前面的代码貌似这里的参数必须是range其实只需要一个三个成员的integer数组就可以有无其他方式直接使用值(10,4,5)传入这个绘图函数,而不必折腾三个range出来
ActiveChart.SeriesCollection(1).XValues="={""初级"",""中级"",""高级""}"
ActiveChart.SeriesCollection(1).Name="=""人员能力分布"""
ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).ApplyDataLabels
ActiveChart.ChartTitle.Format.TextFrame2.TextRange.Font.NameComplexScript="微软雅黑"
ActiveChart.ChartTitle.Format.TextFrame2.TextRange.Font.NameFarEast="微软雅黑"
ActiveChart.ChartTitle.Format.TextFrame2.TextRange.Font.Name="微软雅黑"
ActiveChart.ChartTitle.Format.TextFrame2.TextRange.Font.Size=10

回复

使用道具 举报

千问 | 2021-1-27 06:25:44 | 显示全部楼层
已经说得很清楚了:数据源必须是Range对象!


回复

使用道具 举报

千问 | 2021-1-27 06:25:44 | 显示全部楼层
不能,必须先有Range(填充好的Cell)。
所谓的数据源就是外部存放的数据,Excel的图表自己是不保存数据的,需要显示时取数据源的数据再画出图形。
如果没有填充好的Cell,假使支持其它比如数组之类的数据源;那么保存文件,下次再打开,画图表的时候该到哪里取数?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行