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

VBA技术问询:如何获取SeriesCollection中的最后一个Y值?

在VBA中获取SeriesCollection的最后一个Y值

可以获取,你原代码的问题在于Points.Count没有指定所属的系列对象,导致VBA无法识别,另外还有更稳妥的方式直接从Values数组中获取最后一个元素。

问题分析

原代码里的Cht.SeriesCollection(i).Values(Points.Count)存在两个问题:

  1. Points.Count没有明确指向当前遍历的系列,VBA无法解析这个对象;
  2. 直接用Points的数量作为索引,虽然通常和Values的元素数量一致,但直接操作Values数组的边界更可靠。

修正后的代码

Sub Series_Values()
    Dim Cht As Chart
    Dim srs As Series
    Dim lastYValue As Variant
    
    For Each Cht In ActiveWorkbook.Charts
        ' 改用For Each遍历系列,代码更简洁易读
        For Each srs In Cht.SeriesCollection
            Debug.Print srs.Name
            Debug.Print WorksheetFunction.Max(srs.Values)
            Debug.Print srs.Points.Count
            
            ' 获取最后一个Y值的正确写法:用UBound获取数组的最大索引
            lastYValue = srs.Values(UBound(srs.Values))
            Debug.Print lastYValue
        Next srs
    Next Cht
End Sub

额外说明

  • VBA中从图表系列获取的Values是一个基于1的数组,UBound(srs.Values)会返回数组的最后一个元素索引,直接取值即可得到最后一个Y值;
  • 如果需要处理空系列的情况,可以添加判断避免报错:
    If Not IsEmpty(srs.Values) Then
        lastYValue = srs.Values(UBound(srs.Values))
        Debug.Print lastYValue
    Else
        Debug.Print "该系列无数据"
    End If
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 16:12:17