使用VBA将Datapoint添加到Excel图表

时间:2009-09-22 07:43:11

标签: excel vba excel-vba

我有一个图表对象,有3个系列。该系列从C1范围获得Y值:C10,D1:D10和E1:E10。该值取决于A1:A10中的值(例如C1 = A1 + 6);但是我正在根据B1:10中的值绘制值(它是一个对数 - 法线图)。

我正在计算VBA中的值。由于A1:A10中只有一些离散的点,我想在图表中添加一些额外的兴趣点。因此,如果A1:A10包含整数1到10,我想绘制一个像3.5这样的十进制数,而不必在工作表中添加任何新行。

从环顾四周看,我认为这将是 Extend 方法(MSDN - Extend Method),但我不确定如何:

  1. 扩展特定系列(例如只添加一个点C1系列:C10和D1:D10
  2. 如何在没有的情况下添加数据点 需要添加一个单元格 工作表。
  3. 任何帮助将不胜感激。 感谢

1 个答案:

答案 0 :(得分:4)

问题2

您可以使用系列对象上的value属性设置单个系列的值。

但是,在“帮助”中,它指出系列中的值可以是

工作表上的范围常量值数组

但不是两个

这意味着如果您想将系列值指定为C1:C10等范围,那么我认为如果要在系列中添加数据点,则必须添加单元格。

如果您不想添加单元格,则必须将所有值指定为数组常量。

问题1

要将数据点添加到特定系列,我相信您必须选择系列,并修改 XValues 属性。

示例:

将此数据放入Excel的“Sheet1”中并将其绘制为“Chart1”。 y1将是系列1,y2将是series2,y3将是系列3。

     A    B     C     D
1    x    y1    y2    y3
2    1    10    100   400
3    2    20    200   500
4    3    30    300   600

现在,我们将数据点添加到y2。

     A    B     C     D
1    x    y1    y2    y3
2    1    10    100   400
3    2    20    200   500
4    3    30    300   600
5    4          1000

我们必须选择系列(按编号或按名称,在本例中为2或“y2”)并将Value属性设置为“C2:C5”

'using ranges
Charts("chart1").SeriesCollection("y2").Values = Worksheets("Sheet1").Range("C2:C5")

'using array constant
Charts("chart1").SeriesCollection("y2").Values = Array(100, 200, 300, 1000)

我们还将更改XValues属性,以便每个Value都有一个XValue

'using ranges
Charts("chart1").SeriesCollection("y2").XValues = Worksheets("Sheet1").Range("A2:A5")

'using array constant
Charts("chart1").SeriesCollection("y2").XValues = Array(1, 2, 3, 4)

注意:

我们可以将值作为范围,将XValues作为数组常量,反之亦然。

我们也可以将Values和XValues作为范围或两者作为数组常量。

我们不能将值作为范围和数组常量。

我们不能将XValues作为范围和数组常量。