Excel 为第1行合并单元格中包含文本的多个图表提供标题
这个链接显示了我通过运行下面给出的代码获得的示例数据和图表。我有动态的部门数量 我希望每个图表将标题作为各自的部门名称,即每个图表数据上方每个合并单元格中给出的名称 请给我一个相同的代码Excel 为第1行合并单元格中包含文本的多个图表提供标题,excel,vba,charts,title,Excel,Vba,Charts,Title,这个链接显示了我通过运行下面给出的代码获得的示例数据和图表。我有动态的部门数量 我希望每个图表将标题作为各自的部门名称,即每个图表数据上方每个合并单元格中给出的名称 请给我一个相同的代码 Option Explicit Sub PlotSeparateChartsByMergedFirstRow() Dim rUsed As Range, rMerged As Range, rChtData As Range Dim rChtDat1 As Range, rChtDat2 As Ran
Option Explicit
Sub PlotSeparateChartsByMergedFirstRow()
Dim rUsed As Range, rMerged As Range, rChtData As Range
Dim rChtDat1 As Range, rChtDat2 As Range
Dim iColMerge As Long, iColData As Long
Dim cht1 As Chart, cht2 As Chart
Const iChtHeight As Double = 175
Set rUsed = ActiveSheet.UsedRange
iColMerge = 1
Do
iColMerge = iColMerge + 1
If iColMerge > rUsed.Columns.Count Then Exit Do
If rUsed.Cells(1, iColMerge).MergeCells Then
Set rMerged = rUsed.Cells(1, iColMerge).MergeArea
Set rChtData = rMerged.Resize(rUsed.Rows.Count)
' x values
Set rChtDat1 = rUsed.Columns(1)
Set rChtDat2 = rUsed.Columns(1)
' y values
For iColData = 1 To rChtData.Columns.Count - 1 Step 2
Set rChtDat1 = Union(rChtDat1, rChtData.Columns(iColData))
Set rChtDat2 = Union(rChtDat2, rChtData.Columns(iColData + 1))
Next
' charts
' 2007, 2010
Set cht1 = ActiveSheet.Shapes.AddChart(xlColumnClustered, rChtData.Left, rChtData.Height, rChtData.Width, iChtHeight).Chart
With cht1
.SetSourceData rChtDat1, xlColumns
End With
' 2007, 2010
Set cht2 = ActiveSheet.Shapes.AddChart(xlColumnClustered, rChtData.Left, rChtData.Height + iChtHeight, rChtData.Width, iChtHeight).Chart
With cht2
.SetSourceData rChtDat2, xlColumns
End With
nd If
iColMerge = iColMerge + rMerged.Columns.Count - 1
Loop
End Sub
确保图表有标题,然后将标题链接到第一行中合并块的第一个单元格
With cht1
.SetSourceData rChtDat1, xlColumns
.HasTitle = True
.ChartTitle.Text = "=" & rUsed.Cells(1, iColMerge).Address(, , , True)
End With
伟大的把它标记为答案。