2015-04-26 25 views
6

Sto tentando di creare ErrorBars in un grafico tramite VBA di Excel, ma ho bisogno che la larghezza sia 12PT o che vari. Ecco il codice che sto usando, ma non sembra che funzioni:Impossibile modificare la larghezza delle barre degli errori personalizzate

Set s = .SeriesCollection.NewSeries() 
With s 
    .Name = "=GraphicSchedule!$" & getColumn(objList.ListColumns.Item("Activity").Range.Column) & "$" & sourceRow 
    .XValues = "=GraphicSchedule!$" & getColumn(objList.ListColumns.Item("DateMid").Range.Column) & "$" & sourceRow 
    .Values = "=GraphicSchedule!$" & getColumn(objList.ListColumns.Item("Loc1").Range.Column) & "$" & sourceRow 
    .HasErrorBars = True 
    .ErrorBar Direction:=xlX, Include:=xlErrorBarIncludeBoth, Type:=xlErrorBarTypeCustom, Amount:="=GraphicSchedule!$" & getColumn(objList.ListColumns.Item("BarLength").Range.Column) & "$" & sourceRow, MinusValues:="=GraphicSchedule!$" & getColumn(objList.ListColumns.Item("BarLength").Range.Column) & "$" & sourceRow 
    Set eB = .ErrorBars 
    With eB 
     With .Format.Line 
      .Visible = msoTrue 
      .Style = msoLineSingle 
      .Weight = 12 
     End With 
     .EndStyle = xlNoCap 
    End With 
    .HasDataLabels = True 
    Set dLabels = .DataLabels 
    With dLabels 
     .Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, "=GraphicSchedule!$" & getColumn(objList.ListColumns.Item("Activity").Range.Column) & "$" & sourceRow 
     .ShowRange = True 
     .ShowSeriesName = False 
     .ShowValue = False 
    End With 
End With 

Ho calcolato utilizzando la proprietà di peso avrebbe funzionato, ma ho fatto a trascurare qualcosa?

+0

Funziona bene per me nel 2010. Che cosa vedi? – Rory

+0

La larghezza errata 12pt è adatta a te? Stava mostrando solo a 4 o così per me. – jDave1984

+0

Sì, lo era. Lo stesso nel 2016. – Rory

risposta

2

Credo che il problema è con .HasErrorBars = True che crea già automaticamente una barra di errore se non ne è presente una, mentre la riga successiva .ErrorBar ne crea un'altra.

A questo punto si hanno due barre di errore e nel .Format.Line.Weight = 12 del mio caso è interessato solo il primo aggiunto automaticamente.

Provare a impostare .HasErrorBars = False prima di utilizzare .ErrorBar e vedere se fa la differenza.

.HasErrorBars = False 
.ErrorBar Direction:=xlX, Include:=xlErrorBarIncludeBoth, Type:=xlErrorBarTypeCustom, Amount:="=GraphicSchedule!$" & getColumn(objList.ListColumns.Item("BarLength").Range.Column) & "$" & sourceRow, MinusValues:="=GraphicSchedule!$" & getColumn(objList.ListColumns.Item("BarLength").Range.Column) & "$" & sourceRow 

* Un'altra cosa da provare è quella di attivare o disattivare la .Format.Line.Visible dopo le modifiche per aggiornare.

Problemi correlati