向LineChart添加数组报错:SeriesCollection不支持该属性或方法求助
问题解决:VBA折线图绑定数组报错
你的代码报错核心原因是SeriesCollection是系列集合对象,不能直接通过它设置Values属性,必须指定具体的系列索引(比如刚创建的新系列是集合中的第1个,用SeriesCollection(1))。
修正后的代码如下:
Sub Button1_Click() 'Declare Dim WS As Worksheet, posX As Integer Dim posY As Integer, sizeX As Integer, SizeY As Integer Dim arr1 As Variant Dim ch As Chart Dim newSeries As Series '新增系列变量,逻辑更清晰 ' Init posX = 100: posY = 0 sizeX = 500: SizeY = 300 ' Set Sheet Set WS = Worksheets("Sheet1") WS.Activate ' 定义数据数组 arr1 = Array(10, 15, 12, 25, 35, 20) ' 创建并配置图表 Set ch = WS.Shapes.AddChart2(227, xlLine, posX, posY, sizeX, SizeY).Chart With ch .HasTitle = True .ChartTitle.Text = "My Chart Title" ' 创建新系列并赋值给变量 Set newSeries = .SeriesCollection.NewSeries ' 给指定系列设置数值 newSeries.Values = arr1 ' 可选:设置系列名称 newSeries.Name = "自定义数据系列" End With End Sub
关键修正点:
- 新增
newSeries变量接收创建的新系列,避免直接操作集合时的索引混淆 - 用
newSeries.Values = arr1(或.SeriesCollection(1).Values = arr1)替代原代码的.SeriesCollection.Values = arr1 - 移除了无用的
WS.Range("A3:B12").Select,因为你是用数组绑定数据,不需要选中单元格
如果需要给系列添加X轴标签,也可以用数组直接设置:
newSeries.XValues = Array("1月", "2月", "3月", "4月", "5月", "6月")
内容的提问来源于stack exchange,提问作者Wabi-Sabi
相关产品推荐
相关产品推荐

