用VBA在工作表中,从第二个sheet开始,依次在每个sheet的J1单元格开始,以C列这一列的数据为X轴,H列这一列的数据为Y轴生成曲线图,曲线图的标题设置为工作表的名称+H1单元格的值,图例名称设置为H1单元格的值
时间: 2024-02-28 10:57:17 浏览: 98
好的,让我来回答你的问题。
首先,我们需要使用VBA循环遍历每个工作表,并获取每个工作表的名称和数据范围。然后,我们将数据范围中的C列和H列数据提取出来,并将其用于生成曲线图。
以下是实现这个功能的VBA代码:
```
Sub GenerateCharts()
Dim ws As Worksheet
Dim cht As ChartObject
Dim xRange As Range, yRange As Range
Dim chartTitle As String, legendName As String
For Each ws In Worksheets
If ws.Index > 1 Then '从第二个sheet开始
Set cht = ws.ChartObjects.Add(Left:=Range("J1").Left, Top:=Range("J1").Top, Width:=400, Height:=300)
Set xRange = ws.Range("C:C")
Set yRange = ws.Range("H:H")
chartTitle = ws.Name & " - " & ws.Range("H1").Value
legendName = ws.Range("H1").Value
With cht.Chart
.ChartType = xlXYScatterLines
.SetSourceData Source:=Union(xRange, yRange)
.HasTitle = True
.ChartTitle.Text = chartTitle
.HasLegend = True
.Legend.Position = xlLegendPositionBottom
.FullSeriesCollection(1).Name = legendName
End With
End If
Next ws
End Sub
```
这段代码首先定义了一个名为`ws`的工作表变量,然后使用`For Each`循环遍历所有工作表。如果工作表的索引大于1,即不是第一个工作表,则创建一个名为`cht`的图表对象,并定义X轴和Y轴的数据范围。接下来,我们设置曲线图的标题和图例名称,并使用`With`语句设置曲线图的其余属性,例如图表类型、数据范围、标题、图例和图例名称。
希望这可以回答你的问题。如果你还有其他问题,请随时问我!
阅读全文