2015-09-07 151 views
0

我在Excel中使用VBA相对比较新,但我试图自动生成图表来跟踪学生在一年中的目标成绩上的进度。在excel中设置手册X值Excel VBA for xlLineMarkers

我遇到的问题是绘制一条只有两点的线 - 它们在年初的等级,以及它们应该在年底的位置。我需要这条线保持静态,而全年某些点的进度可以更新。

我已经设法在Excel中手动创建这样的图表,但我无法弄清楚如何使用代码。该图应该看起来像这样

编辑:我无法发布图片。正确的图表具有在第一次评估的一个点,并用两个

之间有一个单行的最后一次评估,图表,我更喜欢这个

编辑生成的样子:不能发布图片。我的图表的问题是,初始和最终成绩仅在前两点绘制,其余范围为空白。

下面是我使用

ActiveChart.SeriesCollection.NewSeries 
ActiveChart.SeriesCollection(1).Name = "=""Progress""" 
ActiveChart.SeriesCollection(1).XValues = "='GradesForGraph'!$E$2:$V$2" 
ActiveChart.SeriesCollection(1).Values = Worksheets("GradesForGraph").Range(ResultsRange) 
ActiveChart.SeriesCollection.NewSeries 
ActiveChart.SeriesCollection(2).Name = "=""Target""" 
ActiveChart.SeriesCollection(2).XValues = "={1,18}" 
ActiveChart.SeriesCollection(2).Values = Worksheets("GradesForGraph").Range(TargetRange) 

“TargetRange”是指两个单元在片GradesForGraph与学生的初始级,什么在今年年底他们的等级应该是范围的代码。

我试着用值为1,18的数组替换“= {1,18}”,但无济于事(我使用1和18,因为全年有18个评估点)。

任何帮助非常感谢。

+0

您是否正在使用XY散点图 - 或者至少指定了第二个系列的类型? – Rory

+0

道歉 - 忘记包括。我正在使用折线图,但现在改成了散点图,已经解决了我的目标成绩问题,但并没有按照我想要的做 - 但我失去了我的X轴标签(这些标签原本是系列进度的测试名称) –

+0

刚开始使用它,我认为我的问题在于数据系列1(进度)在X轴上都有连续的字符串值(测试名称) - 所以我假设我需要围绕我的目标点绘制方法在第一个也是最后一个点 –

回答

0

在Excel折线图中,每个系列都使用相同的X值。如果您为第一个系列指定它们,则不需要为第二个系列指定它们。但是这也意味着你需要这个数值的Y值来形成一个连续的目标线。这意味着TargetRange需要18个具有相同目标值的单元格。

或者您可以将目标添加为XY系列。使用数组的X值(0.5,18.5),所以您绘制的线将超出数据点到图表的边缘。

With ActiveChart.SeriesCollection.NewSeries 
    .Name = "=""Progress""" 
    .Values = Worksheets("GradesForGraph").Range(ResultsRange) 
    .XValues = "='GradesForGraph'!$E$2:$V$2" 
    .ChartType = xlLineMarkers 
    End With 
    With ActiveChart.SeriesCollection.NewSeries 
    .Name = "=""Target""" 
    .Values = Worksheets("GradesForGraph").Range(TargetRange) 
    .ChartType = xlXYScatterLinesNoMarkers 
    .AxisGroup = xlPrimary 
    .XValues = Array(0.5, 18.5) 
    End With 
+0

完美 - 这正是我期待的!非常感谢你! –