如何在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
图表类型,那么水平线对我来说非常适合。 (当我使用值时,我得到一条水平线,这对于柱形图而不是条形图来说是完美的。)
答案 0 :(得分:1)
这应该这样做:
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的图表类型。该图表类型默认包含该行上每个数据点的标记点。我以为你不想要那些因为它们在视觉上分散注意力。我将它们设置为xlNone
。
使用XYScatter类型图表时,您需要为每个数据点提供两个数字... x值和y值。要绘制一条线,您需要两个数据点。这是我们需要包含在要绘制的系列中的四个数字。根据您的示例,您似乎希望从单元格B5的值中键入该行。所以我使用它并根据单元格B5的值创建了该行的四个数字。
下一个问题是要意识到这条新线将根据辅助y轴进行缩放。一旦我们添加垂直线,Excel就会使这个额外的y轴可见,但它假设我们需要一些填充,因此选择比我们的线稍高的比例的最大值范围。我的代码重置了比例,以便该线填充绘图区域的整个垂直空间。
最后,我删除了这个辅助轴,它实际上没有删除它,而是隐藏它。
就是这样。