Excel VBA,用于更改雷达图上的标记大小、颜色和透明度



在尝试在雷达图上分配自定义标记颜色和透明度级别时,我被 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

编辑:由于注释中的链接,以下代码在分配颜色后作为单独的宏运行时对我有用。 不过这很棘手,我不知道为什么。 首先,我需要运行透明度代码(如下(,然后注释掉.纯色,然后运行颜色代码(上图(,然后再次运行透明度代码(下图(,然后它就可以工作了。 哎呀! 我现在不太担心优化,但这似乎经常起作用:

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.5http://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

相关内容

  • 没有找到相关文章

最新更新