Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Excel VBA中为xlLineMarkers设置手动X值_Vba_Excel_Graph_Charts - Fatal编程技术网

在Excel VBA中为xlLineMarkers设置手动X值

在Excel VBA中为xlLineMarkers设置手动X值,vba,excel,graph,charts,Vba,Excel,Graph,Charts,我对在excel中使用VBA还比较陌生,但我正在尝试自动生成图表来跟踪学生全年的学习进度和目标成绩 我现在面临的问题是用两个点来画一条线——他们在年初的分数,以及他们在年底应该在哪里。我需要这条线保持静态,同时全年某些点的进度可以更新 我已经设法在Excel中手动创建了这样一个图形,但我不知道如何使用代码来创建它。理想情况下,图表应该如下所示 编辑:我不能发布图片。正确的图表在第一次评估时有一个点,最后一次评估时在两次评估之间有一条直线 然而,我生成的图看起来更像这样 编辑:无法发布图像。我的图

我对在excel中使用VBA还比较陌生,但我正在尝试自动生成图表来跟踪学生全年的学习进度和目标成绩

我现在面临的问题是用两个点来画一条线——他们在年初的分数,以及他们在年底应该在哪里。我需要这条线保持静态,同时全年某些点的进度可以更新

我已经设法在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”指的是成绩表中的两个单元格,其中包括学生的初始成绩以及他们在年底的成绩

我尝试用一个仅包含值1,18的数组替换“={1,18}”,但没有效果(我使用1和18,因为全年有18个评估点)


非常感谢您的帮助。

在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

您是在使用XY散点图,还是至少在第二个系列中指定了该类型?抱歉,忘了包括该类型。我使用的是折线图,但现在改为散点图解决了我的目标成绩没有达到我想要的水平的问题-但我刚刚玩了一下就丢失了X轴标签(这些最初是系列进度的测试名称)。我认为我的问题在于数据系列1(进度)所有这些在X轴上都有连续的字符串值(测试名称)-因此我假设我需要在第一个点和最后一个点绘制我的目标点完美-这正是我想要的!非常感谢你!