使用VBA按系列名称包含的指定字符修改Excel图表系列颜色
VBA批量按系列名关键词修改折线图样式解决方案
核心调整逻辑
- 把固定循环1~10的逻辑改为遍历所有系列,上限取图表的系列总数量,适配170+系列的场景
- 用VBA内置的
InStr函数判断系列名是否包含目标连续字符串,功能等价于Python中的in关键字,返回值大于0即表示存在匹配 - 增加多条件分支,分别匹配ABC/DEF/GHI三个关键词,对应设置不同的填充色
修改后完整代码
Sub 按关键词设置系列样式() Dim j As Long Dim seriesName As String ' 存储当前遍历到的系列名称 With ActiveSheet.ChartObjects("Chart 1").Chart ' 遍历所有系列,上限取当前图表的系列总数量 For j = 1 To .SeriesCollection.Count seriesName = .SeriesCollection(j).Name With .SeriesCollection(j) ' 所有系列统一生效的公共样式,如果不需要给不匹配关键词的系列设置,可移到下方if分支内 .MarkerStyle = 2 .MarkerSize = 7 .Format.Line.Visible = msoFalse ' 按包含的关键词匹配对应颜色 If InStr(seriesName, "ABC") > 0 Then ' 包含ABC设为红色 .Format.Fill.ForeColor.RGB = RGB(255, 0, 0) ElseIf InStr(seriesName, "DEF") > 0 Then ' 包含DEF设为黑色 .Format.Fill.ForeColor.RGB = RGB(0, 0, 0) ElseIf InStr(seriesName, "GHI") > 0 Then ' 包含GHI设为蓝色 .Format.Fill.ForeColor.RGB = RGB(0, 0, 255) End If End With Next j End With End Sub
补充说明
如果需要不区分大小写匹配关键词(比如abc、AbC也能识别),把InStr(seriesName, "ABC")修改为InStr(seriesName, "ABC", vbTextCompare)即可。
内容的提问来源于stack exchange,提问作者Kolumbo
相关产品推荐
相关产品推荐

