2015-04-26 2 views
6

Я пытаюсь создать ErrorBars в диаграмме через Excel VBA, но мне нужна ширина 12PT или меняться. Вот код, я использую, но это не выглядит, как это работает:Невозможно изменить ширину пользовательских ErrorBars

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 

Я понял, используя свойство веса будет работать, но я упускать из виду что-то?

+0

Прекрасно работает для меня в 2010 году. Что вы видите? – Rory

+0

Является ли ширина ошибки 12pt для вас? Это было всего лишь в 4 или около того для меня. – jDave1984

+0

Да, это было. То же самое в 2016 году. – Rory

ответ

-2

Согласно документации Microsoft, вам нужно использовать 'вес':

ErrorBars -> Граница: https://msdn.microsoft.com/en-us/library/aa174210%28v=office.11%29.aspx

Border -> Вес: https://msdn.microsoft.com/en-us/library/aa215968%28v=office.11%29.aspx

+0

Не могли бы вы рассказать мне, почему -2? была упомянута официальная документация, которую я сделал, чтобы объяснить, почему использование веса ... ?? –

2

Я думаю, что проблема с .HasErrorBars = True который уже создает панель ошибок автоматически, если ее нет, а следующая строка .ErrorBar создает другую.

На этом этапе у вас есть две полосы ошибок, а .Format.Line.Weight = 12 в моем случае затрагивает только первый автоматически добавленный.

Попробуйте установить .HasErrorBars = False перед использованием .ErrorBar и посмотрите, не имеет значения.

.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 

* Еще одна вещь, чтобы попытаться это переключить .Format.Line.Visible после изменения обновляемый.

Смежные вопросы