2014-12-08 1 views
2

Я подвергаюсь обструкции 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 

ответ

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

+0

Спасибо за ссылки ... Я увидел нечто похожее и попытался использовать '.Format.Fill.Transparency = 0.5' на своем собственном, а также несколько других комбинаций '.Format.Fill ', за которым следуют параметры форматирования (solid, vi sible и т. д.), но ошибка появляется только при добавлении прозрачности, независимо от того, где она появляется в коде. – Adam

+0

И вы получили ту же ошибку? – Chrismas007

+0

Спасибо за предложение, немного поиграть, и это сработало! – Adam

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