使用VBA - Excel 2007将其他工作簿中的图表数据添加到一个系列中

时间:2009-11-25 05:37:40

标签: excel vba excel-vba charts

我需要创建一个Chart,它将在运行宏时从外部源获取数据。设置UserForm,一切都很好,全部完成。但是,我无法找到如何添加该系列的另一部分。

是否有可能拥有一个从多个不同位置获取数据的系列?基本上我需要它按时间顺序排列(水平轴是所有日期),但每个日期完全来自不同的工作簿。我试图让Excel用它的基本功能来做到这一点。我只是无法将它放入图表中。如果可能的话,我希望不必将所有参考数据都复制到工作簿中,因为它已经有16个以上的图表将在他们自己的工作表上。

有谁知道如何让Excel在一个系列中接受许多不同的引用?如何用VBA完成?我对VBA并不是太糟糕,只是之前没有处理过Charting。

2 个答案:

答案 0 :(得分:1)

您无法将来自不同工作表的数据合并到系列的值或Xvalues中。 (您可以将一张表中的数据用于X,将另一张表中的数据用于Y)。

我建议您设置一个图表数据工作表,然后从每个数据表中复制数据并将其粘贴在此表中。

使用数组作为数据的问题是数组的长度限制在250个字符左右。包括逗号并假设只有2位数字而没有小数位数,这意味着您只得到80个值。如果你有浮点值,你将很幸运得到超过15个值。

答案 1 :(得分:0)

我认为您不能拥有来自多个范围/地址的单个系列的单轴,但您可以编写VBA以将图表系列的值设置为特定值而不是连续范围。以下是帮助中的示例:

Charts("Chart1").SeriesCollection(1).Values = Array(1, 3, 5, 7, 11, 13, 17, 19)
Charts("Chart1").SeriesCollection(1).XValues = Array(5.0, 6.3, 12.6, 28, 50)

您必须编写代码来读取不同工作簿中范围之外的值,但这应该有效。