Я подвергаюсь обструкции VBA при попытке присвоить настраиваемый цвет маркера и уровень прозрачности на радиолокационной карте. Я читал, что есть некоторые проблемы с порядком, но независимо от того, где я пытаюсь использовать параметр .transparency, я получаю следующую ошибку: Object не поддерживает это свойство или метод.Excel VBA для изменения размера, цвета и прозрачности маркера на радарном графике
Если я прокомментирую строку .transparency в следующем коде, я получаю отличный радарный график с маркерами, окрашенными значениями в 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: Благодаря ссылке в комментариях, следующий код работает для меня, когда запускается как отдельный макрос после присвоения цвета. Это сложно, и я не знаю, почему. Сначала мне нужно запустить код прозрачности (см. Ниже), а затем закомментировать. Сложите, затем запустите код цвета (выше), затем снова введите код прозрачности (ниже), затем он будет работать. Хлоп! Я не слишком беспокоюсь об оптимизации в настоящее время, но это, кажется, регулярно работают:
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
Спасибо за ссылки ... Я увидел нечто похожее и попытался использовать '.Format.Fill.Transparency = 0.5' на своем собственном, а также несколько других комбинаций '.Format.Fill ', за которым следуют параметры форматирования (solid, vi sible и т. д.), но ошибка появляется только при добавлении прозрачности, независимо от того, где она появляется в коде. – Adam
И вы получили ту же ошибку? – Chrismas007
Спасибо за предложение, немного поиграть, и это сработало! – Adam