用VBA在工作表中,从第二个sheet开始,依次在每个sheet的J1单元格开始,以C列的数据为X轴,H列的数据为Y轴生成曲线图
时间: 2024-02-28 22:56:39 浏览: 58
好的,我可以帮您解决这个问题。以下是实现该功能的 VBA 代码:
```
Sub GenerateCharts()
Dim ws As Worksheet
Dim lastRow As Long
For Each ws In ThisWorkbook.Worksheets
If ws.Index > 1 Then
lastRow = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row
If lastRow > 1 Then
With ws.Shapes.AddChart2(240, xlXYScatterLinesNoMarkers)
.Chart.SetSourceData Source:=ws.Range("C2:H" & lastRow)
.Chart.SetElement (msoElementChartTitleAboveChart)
.Chart.ChartTitle.Text = ws.Name
.Chart.Axes(xlCategory).HasTitle = True
.Chart.Axes(xlCategory).AxisTitle.Text = "X"
.Chart.Axes(xlValue).HasTitle = True
.Chart.Axes(xlValue).AxisTitle.Text = "Y"
.Top = ws.Range("J1").Top
.Left = ws.Range("J1").Left
End With
End If
End If
Next ws
End Sub
```
该代码会遍历所有工作表,从第二个工作表开始。对于每个工作表,它会寻找 C 列的最后一行,然后将 C 列和 H 列的数据用作 X 和 Y 轴数据生成曲线图。曲线图的标题将设置为工作表的名称,并在 J1 单元格处放置。
阅读全文