条形图上的垂直线

在这里输入图像说明

我如何添加25点的垂直线。 我尝试使用添加序列的方法,但不知何故,我无法得到我需要给该行的范围。 我得到一个25水平线,但我需要一个垂直的。

ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(4).ChartType = xlLine ActiveChart.SeriesCollection(4).XValues = Sheets("Sheet1").Range("B5") 

B5单元格的值为25 。 另外我发现如果我在代码中只使用Values而不是Xvalues ,我会得到25的水平线,所以我非常肯定我需要使用Xvalues但是无法获得范围来完成我的工作。 在目前的代码行无处可见,但传说显示,一个新的系列被添加。

另外:如果我使用XlcolumnStacked图表types,那么水平线对我来说是完美的。 (当我使用值时,我得到一个水平线,这是完美的柱形图,而不是酒吧)。

这应该做到这一点:

 Public Sub AddVerticalLine() Dim k&, s& k = Sheet1.[b5] With ActiveChart s = .SeriesCollection.Count With .SeriesCollection.NewSeries .ChartType = xlXYScatterLines .MarkerStyle = xlNone .Formula = Replace("=SERIES(,{.;.},{1;0}," & s & ")", ".", k) End With With .Axes(xlValue, xlSecondary) .MaximumScale = 1 .Delete End With End With End Sub 

要添加垂直线,您需要将该线的系列添加为XYScatterLines的图表types。 该图表types默认为包括线上每个数据点的标记点。 我以为你不想要那些,因为它们在视觉上分散注意力。 我把它们设置为xlNone

在使用XYScattertypes图表时,您需要为每个数据点提供两个数字:一个x值和一个y值。 要绘制一条线,您需要两个数据点。 这是总共四个数字,我们需要包括在系列被绘制。 根据你的例子,你似乎希望键入单元格B5的值。 所以我就这样做了,并根据单元格B5的值创build了四行数字。

下一个问题是要认识到,这条新的线将根据第二个Y轴进行缩放。 一旦我们添加了垂直线,Excel使得这个额外的Y轴可见,但是它假定我们需要一些填充,因此select一个比我们的线稍高一点的最大值范围。 我的代码重置比例,以便线填充绘图区域的整个垂直空间。

最后,我删除了这个辅助轴,它实际上并没有删除它,而是隐藏了它。

而已。