Изменить цвета всех категорий гистограмм для всех гистограмм (VBA)? - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть около 9 гистограмм, которые я заказал по рангуПроблема в том, что когда вы делаете это, цвета имен различаются по всем графикам.

Итак, я хотел бы сделать цвет для каждой из моих строк одинаковым на всех графиках.

Этот код работает, но он ничего не делает, и я не совсем уверен, почему?Является ли сериал правильным изменением?У меня есть только два из них для примера, в реальной вещи 8 ifs.

Sub Button3_Click()

For Each myChartObject In Sheets("Rank Calc").ChartObjects
    For Each mySrs In myChartObject.Chart.SeriesCollection
        If mySrs.Name = "Monarch" Then mySrs.Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
        If mySrs.Name = "Alpha" Then mySrs.Format.Fill.ForeColor.RGB = RGB(0, 255, 0)

    Next
Next
End Sub

Я думаю, что ряды могут быть неправильными, но мои данные представлены со всеми именами в однома затем их значения в столбце рядом с ними, если это помогает определить, является ли «серия» правильным изменением цвета.

Я также сейчас попробовал это:

Sub Button3_Click()
Dim rPatterns As Range
Dim iCategory As Long
Dim vCategories As Variant
Dim rCategory As Range

Set rPatterns = Sheets("RankCalc").Range("AH1:AH8")
For Each myChartObject In Sheets("RankCalc").ChartObjects
    With myChartObject.SeriesCollection(1)
      vCategories = .XValues
      For iCategory = 1 To UBound(vCategories)
        Set rCategory = rPatterns.Find(What:=vCategories(iCategory))
        .Points(iCategory).Format.Fill.ForeColor.RGB = rCategory.Interior.Color
      Next
    End With
    Next
End Sub

Но он говорит мне, что With myChartObject.SeriesCollection(1), этот объект не поддерживает этот метод.Так что я не знаю, что делать.

1 Ответ

0 голосов
/ 30 ноября 2018

для изменения цвета серии,
установить свойство -> .Interior.Color

см. Следующий фрагмент ...

Sub Button3_Click()
  Dim myChartObject As ChartObject
  Dim mySrs As Series

  For Each myChartObject In Sheets("Sheet1").ChartObjects
    For Each mySrs In myChartObject.Chart.SeriesCollection
      Select Case mySrs.Name
        Case "A"
          mySrs.Interior.Color = RGB(255, 0, 0)
        Case "B"
          mySrs.Interior.Color = RGB(0, 255, 0)
        Case "C"
          mySrs.Interior.Color = RGB(0, 0, 255)
        Case "D"
          mySrs.Interior.Color = RGB(255, 255, 0)
        Case "E"
          mySrs.Interior.Color = RGB(0, 0, 0)
      End Select
    Next
  Next
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...