excel - 需要使用 VBA 更改数据透视图上的颜色

标签 excel excel-2010 vba

问题:

我正在使用 Excel 2010 和多个数据透视图生成报告。当我生成报告时,我无法将数据透视图系列的颜色设置为静态值。有时“Pass”系列显示为“RED”,这会造成困惑。

我尝试使用下面的代码来强制更改系列上的颜色:

Sheets("PSD").Select
ActiveSheet.ChartObjects("Chart 5").Activate
ActiveChart.SeriesCollection(1).Select
With Selection.Format.Fill
    .Visible = msoTrue
    .ForeColor.RGB = RGB(0, 176, 80)
    .Transparency = 0
    .Solid
End With

代码的问题是 SeriesCollection(1) 并不总是我想要的同一个系列,当我将代码更新为 SeriesCollection("Pass") 时,它不起作用。

我需要找到一种方法来按名称引用SeriesCollection,如果不存在,我可以继续使用On Error Resume Next,无需检查它。

最佳答案

要通过名称获取系列的句柄,您可以执行以下操作:

Sub cht()
    Dim cht As Chart
    Set cht = Sheets("PSD").ChartObjects("Chart 5").Chart

    Dim ss As Series
    Set ss = cht.SeriesCollection("Pass")

    With ss.Format.Fill
        .Visible = msoTrue
        .ForeColor.RGB = RGB(0, 176, 80)
    End With
End Sub

之前:

enter image description here

之后:

enter image description here

关于excel - 需要使用 VBA 更改数据透视图上的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27027264/

相关文章:

string - Excel VBA 类似运算符

windows - 如何在 Windows 中比较两个 csv 文件

excel - 如何一次从Excel工作表的所有单元格中删除前导和尾随空格

vba - 宏未显示在运行宏菜单中

vba - http响应文本获取不完整的html

xml - 将非规范化数据从 excel 导出到 xml

excel - 自动填充十六进制值,无需辅助列

Excel 使用格式奇怪的数据构建条形图

vba - 从另一个控件的回调更新 iRibbon 控件的内容

excel - 禁用删除工作表