文档库 最新最全的文档下载
当前位置:文档库 › 批量绘图VBA代码

批量绘图VBA代码

'定义模块内变量
Dim R, C
Sub 按行批量绘图()
Call 批量删图
Dim i, sh
'定义变量sh为当前工作表名
sh = https://www.wendangku.net/doc/9c4990384.html,
'开始循环,从第二行到最后一行
For i = 2 To ActiveSheet.Range("A1048576").End(xlUp).Row
'增加一个图表
Charts.Add
'设置图表类型为柱形图
ActiveChart.ChartType = xlColumnClustered
'设置图表的数据源
ActiveChart.SetSourceData
Source:=Sheets(sh).Range("A1:"&Chr(64+C)&"1,"&"A" &i&":"&Chr(64+C)&i),PlotBy:=xlRows
'设置图表的位置为当前工作表
ActiveChart.Location where:=xlLocationAsObject, Name:=sh
'设置图表的上下间隔(含图)为210磅,左侧与A列对齐,高度为200磅
ActiveChart.Parent.Top = Sheets(sh).UsedRange.Height + 210 * (i - 2)
ActiveChart.Parent.Left = 0
ActiveChart.Parent.Height = 200
'继续循环
Next i
'选择A1单元格
ActiveSheet.Range("A1").Select

End Sub
Private Sub 批量删图()
Dim ch As chartobjet
'在当前工作表的所有图表中循环
For Each ch In ActiveSheet.ChartObjects
'删除图表对象
ch.Delete
Next
'计算最下一行R和最后一列C
R = ActiveSheet.Range("A1048576").End(xlUp).Row
C = ActiveSheet.Range("XFD1").End(xlToLeft).Column

End Sub
Sub 按列批量绘图()
Call 批量删图
Dim i, sh, t
'定义变量sh为当前工作表名
sh = https://www.wendangku.net/doc/9c4990384.html,
'开始循环,从第二行到最后一行
For i = 2 To ActiveSheet.Range("XFD1").End(xlToLeft).Column
'增加一个图表
Charts.Add
'设置图表类型为柱形图
ActiveChart.ChartType = xlColumnClustered
'设置图表的数据源
ActiveChart.SetSourceData
Source:=Sheets(sh).Range("A1:A"&R&","&Chr(64+i)&"1:"&Chr(64+i)&R),PlotBy:=xlcolumns
'设置图表的上下间隔(含图)为210磅,左侧与A列对齐,高度为200磅
ActiveChart.Parent.Top = Sheets(sh).UsedRange.Height + 210 * (i - 2)
ActiveChart.Parent.Left = 0
ActiveChart.Parent.Height = 200
'继续循环
Next i
'选择A1单元格
ActiveSheet.Range("A1").Select
End Sub

相关文档