我需要为工作簿中的每个工作表创建一个图表(大约 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 中图表的数据 - 我需要在每个单独的工作表上绘制该数据的图表。
这有助于澄清吗?
尝试下面的代码
只是不确定您希望图表的源来自哪里,它们都来自
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
您的年龄段是什么?
图表:(插入饼图)
调查结果:受访者年龄以18-35岁为主,占样本的60%,其次是36-45岁(30%)和46岁及以上(10%)。人口统计重点凸显了为最常出现的客户年龄组解决服务问题的重要性。