用VBA在工作表中,从第二个sheet开始,依次在每个sheet的J1单元格开始,以C列这一列的数据为X轴,H列这一列的数据为Y轴生成曲线图,曲线图的标题设置为工作表的名称+H1单元格的值
时间: 2024-02-28 10:56:45 浏览: 61
多个EXCEL工作簿(Sheet)合成一个工作簿
5星 · 资源好评率100%
好的,我理解了你的要求。以下是实现该功能的VBA代码:
```
Sub GenerateCharts()
Dim ws As Worksheet
Dim cht As ChartObject
Dim chtTitle As String
Dim lastRow As Long
For Each ws In Worksheets
If ws.Index <> 1 Then '从第二个sheet开始
lastRow = ws.Cells(Rows.Count, "C").End(xlUp).Row '获取C列的最后一行
chtTitle = ws.Name & " " & ws.Range("H1").Value '图表标题
Set cht = ws.ChartObjects.Add(Left:=0, Width:=400, Top:=0, Height:=250) '插入图表
With cht.Chart
.ChartType = xlXYScatterLines '设置图表类型为曲线图
.SetSourceData Source:=ws.Range("C2:C" & lastRow & ",H2:H" & lastRow) '设置数据源
.HasTitle = True '添加图表标题
.ChartTitle.Text = chtTitle
.Axes(xlCategory).HasTitle = True '添加X轴标题
.Axes(xlCategory).AxisTitle.Text = "X轴"
.Axes(xlValue).HasTitle = True '添加Y轴标题
.Axes(xlValue).AxisTitle.Text = "Y轴"
End With
cht.Top = ws.Range("J1").Top '设置图表位置
cht.Left = ws.Range("J1").Left
End If
Next ws
End Sub
```
你可以将这段代码复制到VBA编辑器中,然后运行即可在每个工作表中生成相应的曲线图。注意,如果工作表中不存在数据,或者C列或H列的数据不是数字类型,可能会出现错误。
阅读全文