当我试图在雷达图上分配自定义标记颜色和透明度级别时,我正被VBA砌墙。我已经读过订单存在一些问题,但无论我在哪里尝试.transparency参数,都会出现以下错误:对象不支持此属性或方法。
如果我在下面的代码中注释掉.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
编辑:感谢评论中的链接,以下代码在分配颜色后作为单独的宏运行时适用于我。虽然很棘手,但我不知道为什么。首先,我需要运行透明度代码(下面),然后注释掉.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
答案 0 :(得分: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