我需要为我的工作簿中的每个工作表创建一个图表(大约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$1:$I$2")
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 - 我需要在每个工作表上绘制数据。
这有助于澄清吗?
答案 0 :(得分:0)
尝试以下代码
只是不确定您想要图表来源的来源,是来自Range("Sheet1!$A$1:$I$2")
,来自" Sheet1" ?或从他们的表?
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$1:$I$2")
.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