我尝试使用vba创建项目时间轴。我想为垂直(Y)和水平(X)误差条创建不同的颜色/样式格式。我首先使用Record Macro来查看X和Y条的选择方式有何不同,但两者都显示为相同的ErrorBars属性。我希望Y误差条变为虚线,但是当我添加该行代码时,X和Y误差条都会发生变化。有什么建议吗?
Sub Timeline()
Dim sheet1 As Worksheet
Dim timeline As Chart
Set sheet1 = ActiveWorkbook.Worksheets("sheet1")
Set timeline = sheet1.Shapes.AddChart.Chart
With timeline
.ChartType = xlXYScatter
.SeriesCollection.NewSeries
.SeriesCollection(1).Name ="Project Lengths"
.SeriesCollection(1).XValues ="='sheet1'!C7:C25"
.SeriesCollection(1).Values ="='sheet1'!D7:D25"
.SeriesCollection(1).ErrorBar Direction:=xlX, Include:= _
xlPlusValues, Type:=xlCustom, Amount:="='sheet1'!E7:E25"
.SeriesCollection(1).ErrorBars.EndStyle = xlNoCap
.SeriesCollection(1).ErrorBars.Format.Line.Visible = msoTrue
.SeriesCollection(1).ErrorBars.Format.Line.ForeColor.RGB = RGB(0, 112, 192)
.SeriesCollection(1).ErrorBars.Format.Line.Transparency = 0
.SeriesCollection(1).ErrorBars.Format.Line.Weight = 2.5
.SeriesCollection(1).ErrorBar Direction:=xlY, Include:= _
xlMinusValues, Type:=xlPercent, Amount:=100
.SeriesCollection(1).ErrorBars.EndStyle = xlNoCap
.SeriesCollection(1).ErrorBars.Format.Line.Visible = msoTrue
.SeriesCollection(1).ErrorBars.Format.Line.DashStyle = msoLineSysDash
End With
End Sub
答案 0 :(得分:0)
您使用的是哪个版本的Excel? 我刚刚在Excel 2013中尝试过您的代码,它似乎有效。
水平误差条为蓝色和虚线,垂直误差条为黑色且不间断。它有点令人困惑,因为它看起来像一个条形图,有很细的条形和水平误差条,但它有效(至少在Excel 2013中)。
答案 1 :(得分:0)
我有同样的问题。 上面的代码也对我有用(Excel 2013) 尝试将解决方案合并到我的代码中后,游戏改变者正在删除“ Series.HasErrorBars = True”行。