You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VBA修改ChartObject图表图例系列名称问题求助

解决Excel VBA图表系列名称显示为Series 1/2的问题

要将图表的系列名称改为Realization和Target,你需要直接修改图表系列的Name属性——.SeriesNameLevel仅适用于绑定动态数组或数据透视表的图表,普通单元格区域数据源不支持该属性,这也是你报错的原因。

修改后的完整代码

Sub DeleteKPICharts()
    On Error Resume Next
    Worksheets("Current DMB Template").ChartObjects.Delete
End Sub

Sub KPIcharts()
Dim wb As Workbook
Dim main As Worksheet
Dim KPI As Worksheet
Dim embeddedchart As ChartObject
Set wb = ThisWorkbook
Set main = wb.Sheets("Current DMB Template")
Set KPI = wb.Sheets("KPI")

Dim TotalGraphsD As Byte
Dim TotalGraphsG As Byte
Dim i As Long, j As Long
Dim ThisColumn As String

For i = 2 To 11 Step 3 '循环遍历行:2,5,8
    ThisColumn = IIf(KPI.Range("E" & i).Value = "No", "G", "D") '确定图表放置的列
    j = 9 + (7 * IIf(ThisColumn = "G", TotalGraphsG, TotalGraphsD)) '确定图表放置的行,每7行一个间隔
    Set embeddedchart = main.ChartObjects.Add(Left:=Range(ThisColumn & j).Left, Width:=170, Top:=Range(ThisColumn & j).Top, Height:=100)
    embeddedchart.Chart.SetSourceData Source:=KPI.Range("A" & i & ":C" & i)
    
    ' 手动设置系列名称
    With embeddedchart.Chart
        .SeriesCollection(1).Name = "Realization"
        .SeriesCollection(2).Name = "Target"
    End With
    
    If ThisColumn = "G" Then TotalGraphsG = TotalGraphsG + 1 Else TotalGraphsD = TotalGraphsD + 1
Next i
End Sub

关键修改说明

在设置图表数据源之后,添加的With块直接修改了两个系列的名称:

  • .SeriesCollection(1)对应数据源中的第二列(B列),命名为Realization
  • .SeriesCollection(2)对应数据源中的第三列(C列),命名为Target

这种方法适用于基于普通单元格区域创建的图表,能直接覆盖默认的Series 1/Series 2命名。

内容的提问来源于stack exchange,提问作者Kris_Toor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 13:20:14