本文作者:office教程网

Excel VBA设置图表动态数据源实例教程

office教程网 2023-11-21 11:08:16
后台-系统设置-扩展变量-手机广告位-内容正文顶部
摘要:

Excel图表的数据源通常为一个连续区域,但有时会遇到图表数据源区域不连续,且需要动态改变的情况。例如下面的某公司人员基本情况汇总表,B列为部门名称,C至S列分别为“性别”、“年龄”、“学历”、“职称”等不同类别数据的汇总,如果将这些数据同时显示在一个图表中,显然不便观察和比较数据,这时可以用VBA来动态改变数据源,单独对各个类别进行显示。

具体的方法是:先在表格中创建一个下拉列表,然后通过下拉列表选择不同的系列,通过VBA代码改变图表数据区域,让图表中的数据随之改变。下面以在Excel 2003中绘制柱形图为例说明如下:

1.设置下拉列表。设置下拉列表的方法有很多,这里用数据有效性来设置。选择某个单元格,如T14,单击菜单“数据→有效性→设置→序列”,在“来源”下输入“性别,年龄,学历,职称”(不含引号)后确定,这样就在T14单元格中通过数据有效性设置了一个下拉列表。

2.插入图表。选择B3:D11区域,即“部门”和第一个类别所在区域“性别”,单击菜单“插入→图表→柱形图→簇状柱形图”,单击“完成”插入一个包含“男”、“女”两个系列的柱形图。

VBA关闭工作簿和退出Excel 代码

要用VBA来关闭工作簿,用Workbook.Close 方法即可,而要退出Excel,则用Application.Quit 方法。下面是一些代码示例: 关闭活动工作簿,如果工作簿有更改,提示是否保存: Sub CloseWorkbook()ActiveWorkbook.CloseEnd Sub 如果要避免出现提示,可添

3.输入VBA代码。按Alt F11,打开VBA编辑器,在代码窗口中粘贴下列代码:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$T$14" Then
Dim RngStr As String
Select Case Target.Value
Case "性别"
RngStr = "b3:b11,c3:d11"
Case "年龄"
RngStr = "b3:b11,e3:i11"
Case "学历"
RngStr = "b3:b11,j3:n11"
Case "职称"
RngStr = "b3:b11,o3:s11"
End Select
ChartObjects("图表 1").Chart.SetSourceData Source:=Range(RngStr)
End If
End Sub

说明:改变T14单元格中的内容时,图表的数据区域随之改变。本例中的图表名称为“图表 1”,需根据实际进行更改。查看图表名称的方法是:

Excel 2003:按住Ctrl键单击图表,在名称框中即可看到所选图表的名称。

Excel 2007/2010:选择图表,在“图表工具-布局”选项卡的“属性”组中即可看到图表名称。

关闭VBA编辑器,返回Excel工作表界面,选择T14单元格中的不同系列即可在图表显示相应类别的数据。

快速保护所有excel工作表或撤消所有工作表保护

有时需要让Excel工作簿中的每个工作表只能查看而不被修改,可以对所有的工作表进行保护,如果工作簿中的工作表数量较多,手动逐一操作十分繁琐。在工作表保护密码相同或不设置密码的情况下,用下面的方法可以快速保护所有工作表。 1.按Alt F11,打开VBA编辑器。单击菜单“视图→立即窗口”

后台-系统设置-扩展变量-手机广告位-内容正文底部
未经允许不得转载:

作者:office教程网,原文地址:Excel VBA设置图表动态数据源实例教程发布于2023-11-21 11:08:16
转载或复制请以超链接形式并注明出处 演示站

分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

留言与评论(共有 0 条评论)
   
验证码: