Excel宏更改了ActiveChart.SeriesCollection(1).XValues但文本保持不变

时间:2013-03-24 08:00:39

标签: excel vba

我是VB或VBA的新手,但最近使用Excel的工作需要大量的重复。这就是为什么我现在正在考虑使用VBA宏方法来简化流程。

工作很简单 - 使用给定数据生成图表。但是要创建数百个图表,所以我使用了复制和粘贴来保持样式的一致性,并在之后更改了值。

所有数据都很好,但轴标签不太顺利。我想使用ActiveChart.SeriesCollection(1).XValues = "=<sheet_name>!$<row_num>$<col_num>"来修改相应单元格中某些现有文本的值,但它没有在图表上解决,即,如果标签是&#34;总计&#34; ,就像在A6单元格中一样,在我复制的原始图表中,选择粘贴的图表并执行上面的命令后,新图表中的标签仍然显示&#34; total&#34;而不是B6单元中的内容,例如中国&#34;中国&#34;。但是,当我右键单击图表并进入&#34;选择数据&#34;,&#34;水平(Catagory)轴标签&#34;确实变成了&#34; = sheet1!$ B $ 6&#34;,这让我非常困惑。

任何人都知道这是怎么发生的以及如何解决这个问题?是否有&#34;更新&#34;图表对象的方法或我遗失的任何东西?

我目前正在使用Excel 2010.

1 个答案:

答案 0 :(得分:1)

欢迎来到Excel VBA的奇怪世界。

SeriesCollection().XValues需要Range个对象或一系列点数,因此您必须将字符串转换为范围:

ActiveChart.SeriesCollection(1).XValues = Sheets(<sheet_name>).Range("$<row_num>$<col_num>")