使用该工作表中的数据在每个工作表上创建图表

Create A Chart On Each Worksheet Using The Data From That Worksheet

我需要为我的工作簿中的每个工作表创建一个图表(大约 10 个,但可能是 12 个)- 我录制了一个宏,并添加了我之前用于迭代工作簿的语法并出现了与下面。现在我马上看到的问题是语法指定 Chart 1 并且一旦使用该名称就不能重新使用。

如何更改此语法以使其可重复用于在工作簿的多个工作表上插入完全相同的图表?

Sub CreateChart()
Dim WS_Count As Integer, I As Integer

  WS_Count = ActiveWorkbook.Worksheets.Count
  For I = 1 To WS_Count
    Range("A1:I2").Select
    ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select
    ActiveChart.SetSourceData Source:=Range("Sheet1!$A:$I")
    ActiveSheet.Shapes("Chart 1").ScaleWidth 1.9416666667, msoFalse, _
        msoScaleFromBottomRight
    ActiveSheet.Shapes("Chart 1").ScaleHeight 1.4531248177, msoFalse, _
        msoScaleFromBottomRight
    ActiveChart.ClearToMatchStyle
    ActiveChart.ChartStyle = 205
  Next I
End Sub

编辑
该工作簿中大约有 10 个工作表,每个工作表都包含 A1:I2 中图表的数据 - 我需要在每个单独的工作表上绘制该数据。

这有助于澄清吗?

试试下面的代码

只是不确定 您希望图表的源假设来自哪里,它们是否都来自 Range("Sheet1!$A:$I"),来自 "Sheet1"?或者来自他们的 sheet ?

Sub CreateChart()

Dim ws As Worksheet
Dim Chart As Shape

For Each ws In ThisWorkbook.Worksheets
     Set Chart = ws.Shapes.AddChart2(201, xlColumnClustered)

     With Chart
        .Chart.SetSourceData ws.Range("$A:$I")
        .ScaleWidth 1.9416666667, msoFalse, msoScaleFromBottomRight
        .ScaleHeight 1.4531248177, msoFalse, msoScaleFromBottomRight
        .Chart.ClearToMatchStyle
        .Chart.ChartStyle = 205 ' why do you have this line ? why not define the chart style as 205 in the first line ?
     End With
Next ws

End Sub