首页 > 解决方案 > 使用 Excel VBA,如何从工作簿中自动生成图表标题列表?

问题描述

我有一个 Excel 工作簿,里面装满了图表和不同工作表上的一些数据表。我希望在一张纸中创建所有图表标题的摘要。

我尝试了一些 VBA 编码,但可惜我不能完全调整代码来选择和复制图表标题而不是工作表名称。

Set objNewWorkbook = Excel.Application.Workbooks.Add
Set objNewWorksheet = objNewWorkbook.Sheets(1)

For i = 1 To ThisWorkbook.Sheets.Count
    objNewWorksheet.Cells(i, 1) = i
    objNewWorksheet.Cells(i, 2) = ThisWorkbook.Sheets(i).Name
Next i

我希望有一份不错的图表标题列表。一个额外的好处是也有工作表名称。

标签: excelvbagraphchartsautomation

解决方案


您可以更改i为从您想要的任何行开始并格式化/添加标题。您正在使用一组工作表和一组图表对象。您可以简单地循环。

Sub ChartList()
    Dim objNewWorkbook As Workbook
    Dim objNewWorksheet As Worksheet
    Dim wks As Worksheet
    Dim cht As ChartObject
    Dim i As Long

    Set objNewWorkbook = Excel.Application.Workbooks.Add
    Set objNewWorksheet = objNewWorkbook.Sheets(1)

    i = 1

    For Each wks In ThisWorkbook.Worksheets
        objNewWorksheet.Cells(i, 1) = wks.Index
        objNewWorksheet.Cells(i, 2) = wks.Name
        If wks.ChartObjects.Count > 0 Then
            For Each cht In wks.ChartObjects
                objNewWorksheet.Cells(i, 3) = cht.Chart.ChartTitle.Text
                i = i + 1
            Next cht
        End If
        i = i + 1
    Next wks

End Sub

推荐阅读