您的位置:首页 > 编程语言 > VB

Creat A EXCEL CHART WITH VBA

2008-02-04 12:33 411 查看
Excel VBA之生成图表
1 准备图表数据源

[align=center]
[/align]
[align=center]1月
[/align]
[align=center]2月
[/align]
[align=center]3月
[/align]
[align=center]4月
[/align]
[align=center]5月
[/align]
[align=center]6月
[/align]
[align=center]AAA
[/align]
[align=center]843
[/align]
[align=center]835
[/align]
[align=center]435
[/align]
[align=center]188
[/align]
[align=center]296
[/align]
[align=center]721
[/align]
[align=center]BBB
[/align]
[align=center]542
[/align]
[align=center]460
[/align]
[align=center]277
[/align]
[align=center]713
[/align]
[align=center]51
[/align]
[align=center]340
[/align]
[align=center]CCC
[/align]
[align=center]513
[/align]
[align=center]693
[/align]
[align=center]801
[/align]
[align=center]505
[/align]
[align=center]418
[/align]
[align=center]871
[/align]
[align=center]DDD
[/align]
[align=center]492
[/align]
[align=center]48
[/align]
[align=center]302
[/align]
[align=center]284
[/align]
[align=center]266
[/align]
[align=center]350
[/align]
2 通过VBA作一张柱形图



Sub 图表作成()

Dim myData As String, sh As String

'定义变量myData, sh为字符型

myData = Selection.Address

'设置变量myData为当前选取的单元格区域

sh = ActiveSheet.Name

'设置变量sh为当前工作表的名称

Charts.Add

'添加图表

ActiveChart.ChartType = xlColumnClustered

'图表类型为柱形图

ActiveChart.SetSourceData Source:=Sheets(sh).Range(myData), PlotBy:=xlColumns

'设置图表数据源为myData(当前选取的单元格区域),数据系列为数据源中的列。

ActiveChart.Location Where:=xlLocationAsObject, Name:=sh

'设置图表的位置是当前工作表sh

With ActiveChart

'设置图表的各项参数

.HasTitle = True

'有图表标题

.ChartTitle.Characters.Text = "Snood 图表标题"

'图表标题的文字

.Axes(xlCategory, xlPrimary).HasTitle = True

'有主要横坐标标题

.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "主要横坐标"

'设置主要横坐标标题的文字

.Axes(xlValue, xlPrimary).HasTitle = True

'有主要纵坐标标题

.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "主要纵坐标"

'设置主要纵坐标标题的文字

End With

'结束设置图表的参数

ActiveChart.ChartArea.Select

'选取当前图表的绘图区

End Sub
========================================================
Sub 图表导出为图片()

ActiveChart.Export ThisWorkbook.Path & "/" & Format(Now(), "yymmddhhmm") & ".gif", "gif"

End Sub

ActiveChart.Export指导出当前活动图表

ThisWorkbook.Path指当前工作簿的路径

Format(Now(), "yymmddhhmm")指格式为“年年月月日日时时分分”的当前时间,以此命名图片文件,一般不会有重复。

"gif"图片格式,后缀名,文件比较小。

===========================================================
Sub 指定数据系列()
'编制一个循环分别为每个系列(点)指定数据区域(X,Y坐标)
For i = 1 To ActiveChart.SeriesCollection.Count
ActiveChart.SeriesCollection(ActiveChart.SeriesCollection.Count).Delete
'一个循环,删除当前图表中的全部数据系列
Next
For i = 2 To 7
'循环
ActiveChart.SeriesCollection.NewSeries
'增加新的数据系列
ActiveChart.SeriesCollection(ActiveChart.SeriesCollection.Count).XValues = "=Sheet1!R" & i & "C1"
'(XY散点图)设置数据系列的X值引用单元格
ActiveChart.SeriesCollection(ActiveChart.SeriesCollection.Count).Values = "=Sheet1!R" & i & "C2"
'设置数据系列的Y值引用单元格
Next
End Sub
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: