VBA代码解决方案第二十九讲 利用VBA自动生成图表(一)

B站影视 港台电影 2025-09-30 18:53 1

摘要:《VBA代码解决方案》(版权10028096)这套教程是我最早推出的教程,目前已经是第三版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码摆好。

《VBA代码解决方案》(版权10028096)这套教程是我最早推出的教程,目前已经是第三版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码摆好。

这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过渡教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是VBA代码解决方案第二十九讲 利用VBA自动生成图表(一)

【分享成果,随喜正能量】279 成年了,要学会控制自己的情绪,温柔说话,如果吼叫可以解决问题的话,驴将统治世界。都很不易,有的人打断你的腿,再给你一副拐杖,然后还要告诉你,没有我,你连路都走不了,所以你要懂得感恩。。

大家好,今日给大家讲解VBA代码解决方案的第29讲,如何利用VBA生成图表的前半部分,在实际工作中我们常用图表来表现数据间的某种相对关系,一般采用手工插入的方式,如下图就是一个我们经常用到的图表:

而使用VBA代码可以在工作表中自动生成图表,这节我们重点讲解一些方法及函数,在下节中我们将结合实例来讲解。

应用于ChartObjects对象的Add方法:创建新的嵌入图表,语法如下:

expression.Add(Left, Top, Width, Height)

参数

a) Left、Top是必需的,以磅为单位给出新对象的初始坐标,该坐标是相对于工作表上单元格A1的左上角或图表的左上角的坐标,

b)Width、Height是必需,以磅为单位给出新对象的初始大小。

应用于Chart对象的SetSourceData方法:为指定图表设置源数据区域,语法如下:

expression.SetSourceData(Source, PlotBy)

参数

a) expression是必需的,该表达式返回一个Chart对象。

b) Source是可选的,源数据的区域。

c) PlotBy是可选的,指定数据绘制方式,可为xlColumns(系列产生在列)或xlRows(系列产生在行)。

应用于Chart对象的ApplyDataLabels方法:将数据标签应用于图表中的某一数据点、某一数据系列或所有数据系列,语法如下:

expression.ApplyDataLabels(Type, LegendKey, AutoText, HasLeaderLines, ShowSeriesName, ShowCategoryName, ShowValue, ShowPercentage, ShowBubbleSize, Separator)

参数

a) e xpression是必需的,该表达式返回一个Chart对象。

b) Type是可选的,要应用的数据标签的类型,可为下面表格所列的XlDataLabelsType 常量之一:

xlDataLabelsShowBubbleSizes 值为6 数据标签的气泡大小

xlDataLabelsShowLabelAndPercent 值为5 表示占总数的百分比及数据点所属的分类。仅用于饼图或圆环图。

xlDataLabelsShowPercent 值为3 表示占总数的百分比。仅用于饼图或圆环图。

xlDataLabelsShowLabel 值为4 表示数据点所属的分类。

xlDataLabelsShowNone 值为-4142 表示无数据标签。

xlDataLabelsShowValue 值为2 表示数据点的值,若未指定本参数,默认使用此设置。

c) LegendKey是可选的,如果该值为True,则显示数据点旁的图例项标示。默认值为False。

d) AutoText是可选的,如果对象根据内容自动生成正确的文字,则该值为True。

e) HasLeaderLines是可选的,如果数据系列具有引导线,则该值为True。

f) ShowSeriesName是可选的,数据标签的系列名称。

g) ShowCategoryName是可选的,数据标签的分类名称。

f) ShowValue是可选的,数据标签的值。

h) ShowPercentage是可选的,数据标签的百分比。

i) ShowBubbleSize是可选的,数据标签的气泡尺寸。

j) Separator是可选的,数据标签的分隔符。

SeriesCollection方法返回图表或图表组中单个数据系列(Series对象)或所有数据系列的集合(SeriesCollection集合)的对象,语法如下:expression.SeriesCollection(Index)

可选的Index参数指定数据系列的名称或编号。

DataLabels方法则返回代表数据系列中的单个数据标签(DataLabel对象)或所有数据标签的集合(DataLabels集合)的对象,语法如下:

expression.DataLabels(Index)

可选的Index参数指定数据系列中的数据标签的编号。

今日内容回向:

1 上面讲了五种方法,都有哪些意义?

本讲内容参考程序文件:VBA代码解决方案(28-31).xlsm

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

来源:VBA语言专业教育

相关推荐