Excel VBA для изменения размера маркера, цвета и прозрачности на графике радара


Меня останавливает VBA при попытке назначить пользовательский цвет маркера и уровень прозрачности на диаграмме радара. Я читал, что есть некоторые проблемы с порядком, но независимо от того, где я пытаюсь.параметр прозрачности, я получаю следующую ошибку: объект не поддерживает это свойство или метод.

Если я прокомментирую .в следующем коде я получаю отличный радарный график с маркерами, окрашенными значениями в rngColors. Я просто хотел бы сделать их прозрачными, чтобы нижележащие линейные участки также проходят. Любая помощь или совет будут очень признательны.

С уважением, Адам

Sub colorPoints()

'Must select chart when running macro

  Dim x As Long
  Dim rngColors As Range

  Set rngColors = Range("H8:H57") 'set range of RGB color

  For x = 1 To ActiveChart.SeriesCollection(1).Points.Count
    With ActiveChart.SeriesCollection(1).Points(x)

        .Format.Fill.Solid
        .MarkerBackgroundColor = RGB(212, 142, rngColors(x))
        .transparency = 0.5 <-Error: 'Object doesn't support this property or method.'

    End With
Next

End Sub

EDIT: благодаря ссылке в комментариях, следующий код работал для меня при запуске в виде отдельного макроса после назначения цвета. Хотя это сложно, и я не знаю почему. Сначала мне нужно запустить код прозрачности (ниже), а затем прокомментировать .Solid, затем запустите цветовой код (выше), затем снова код прозрачности (ниже), затем он работает. Ух ты! Я не слишком беспокоюсь об оптимизации сейчас, но это, кажется, работает регулярно:

Sub transcheck()

' transcheck Macro

Dim cht As Chart
Dim Ser As Series
Dim lngIndex As Long
Dim lngChartType As XlChartType

Set cht = ActiveSheet.ChartObjects(1).Chart
Set Ser = cht.SeriesCollection(1)
lngChartType = Ser.ChartType
Ser.ChartType = xlColumnClustered

For lngIndex = 1 To 50
 With Ser.Format.Fill
   .Solid
   .Visible = True
   .transparency = 0.5
 End With

Ser.ChartType = lngChartType
Next
End Sub
1 2

1 ответ:

Найденная мной информация имеет правильный синтаксис .Format.Fill.Transparency = 0.5 http://answers.microsoft.com/en-us/office/forum/office_2007-excel/macro-to-change-the-transparency-of-markers-in-a/6a9964a7-30ad-4412-a48f-2334e4ecd63d

Хотя есть обсуждение ошибок с этой кодировкой в зависимости от вашей версии Excel: http://www.mediafire.com/file/j2tnzlcizzm/05_09_10b.pdf