VBA:为散点图中的错误栏创建不同的格式

时间:2014-05-23 18:28:40

标签: vba excel-vba charts excel

我尝试使用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

2 个答案:

答案 0 :(得分:0)

您使用的是哪个版本的Excel? 我刚刚在Excel 2013中尝试过您的代码,它似乎有效。

enter image description here

水平误差条为蓝色和虚线,垂直误差条为黑色且不间断。它有点令人困惑,因为它看起来像一个条形图,有很细的条形和水平误差条,但它有效(至少在Excel 2013中)。

答案 1 :(得分:0)

我有同样的问题。 上面的代码也对我有用(Excel 2013) 尝试将解决方案合并到我的代码中后,游戏改变者正在删除“ Series.HasErrorBars = True”行。