我有一个图表对象,有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),但我不确定如何:
任何帮助将不胜感激。 感谢
答案 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作为范围和数组常量。