下面是一个示例 VBA 代码,可以从第6行获取所有数据,并根据类别数量生成饼图。

Sub GeneratePieChart()

    Dim ws As Worksheet
    Dim dataRange As Range
    Dim chartRange As Range
    Dim chartObj As ChartObject
    Dim catCount As Integer
    Dim catRange As Range
    
    Set ws = ActiveWorkbook.ActiveSheet
    
    ' 获取数据范围
    Set dataRange = ws.Range("A6", ws.Cells(ws.Rows.Count, "B").End(xlUp))
    
    ' 获取类别数量
    catCount = WorksheetFunction.CountA(dataRange.Columns(1))
    
    ' 创建类别范围
    Set catRange = dataRange.Columns(1).Resize(catCount)
    
    ' 创建图表范围
    Set chartRange = dataRange.Offset(0, 1).Resize(catCount)
    
    ' 创建图表对象
    Set chartObj = ws.ChartObjects.Add(0, 0, 400, 400)
    chartObj.Chart.SetSourceData chartRange
    chartObj.Chart.ChartType = xlPie
    
    ' 设置类别标签
    chartObj.Chart.SeriesCollection(1).ApplyDataLabels
    
    For i = 1 To catCount
        chartObj.Chart.SeriesCollection(1).Points(i).DataLabel.Text = catRange(i)
    Next i
    
End Sub

你可以将该代码复制到 VBA 编辑器中,并在需要时运行该宏。请注意,此代码假定数据在列 A 和 B 中,类别位于列 A 中,数据位于列 B 中。如果你的数据与此不同,请相应地修改代码。

VBA 生成饼图:从第6行获取数据并统计类别数量

原文地址: https://www.cveoy.top/t/topic/lKJF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录