基于地图选择的Excel动态图表(修正)_第1页
基于地图选择的Excel动态图表(修正)_第2页
基于地图选择的Excel动态图表(修正)_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、作图思路:地图由一个个自选图形绘制而成,读者点击某个地区的图形,会触发一个宏过程,这个宏会记录下用户选择的地区名,并修改图形的填充效果。动态图表模型则会根据宏所记录的地区名变换图表的数据,产生动态交互的效果。(地图图形的准备: 首先,在网上找到一个矢量格式的地图文件。所谓矢量格式,是使用直线和曲线来描述图形,这些图形的元素是一些点、线、矩形、多边形、圆和弧线等等,其文件后缀名一般为.WMF、.AI、.EPS、.CDR等。Excel可以读取.WMF格式的文件,其他格式的一般需要专门的软件打开。导入Excel后,该地图可以打散为一个个的自选图形(右键-取消组合),每个自选图形对应一个区域。选中自选

2、图形,在左上角名称框为自选图形命名,然后回车) 或者用自由曲线绘制自选图形图1 基于地图选择的动态图表模型。1.编写公共宏过程单击菜单“工具宏Visual Basic编辑器”(或Alt+F11键), 用户选择后调用的公共宏过程。在左侧窗口中选择ThisWorkbook,在右侧窗口中输入如下代码: -Sub user_click()'1、取A1单元格值,将上次选择的地图版块填充黄色,即还原填充色ActiveSheet.Shapes(Range("A1").Value).Fill.ForeColor.SchemeColor = 58'2、将当前选择的地图版块名称

3、填值到A1Range("A1").Value =ActiveSheet.Shapes(Application.Caller).Name'3、将当前选择的地图版块填充红色ActiveSheet.Shapes(Application.Caller).Fill.ForeColor.SchemeColor = 14End Sub-2.为每个地区图形指定宏调用以湖北省为例,选中湖北的图形,鼠标右键指定宏 在宏名输入框中输入如下代码:'thisworkbook.user_click按同样方法,为其他省的图形一一添加宏代码。熟悉VBA的读者可使用如下宏代码批量添加:-Su

4、b auto_add_macro()'新建一个模型时手动运行,一次性添加宏For i = 1 To ActiveSheet.Shapes.Count'5表示对象类型是地图版块If ActiveSheet.Shapes(i).Type = 5 ThenActiveSheet.Shapes(i).OnAction ="'thisworkbook.user_click'"End IfNextEnd Sub-3.测试选择器现在可以测试选择器了。测试之前,先手动为单元格A1初始化一个值,如“hubei”。然后,用鼠标逐一点击各省的图形,你会发现选择的结

5、果会以拼音名反映在单元格A1中,图形的颜色也会跟随变化。至此,一个地图形式的选择器已经完成。4.准备动态图表数据源假设各省的数据存放在工作表data1中,其中A列为省名的拼音名,B列为省名,CN列为各省112月的指标数据,如图5 所示。图5 动态图表的数据组织。单元格A2引用工作表dashboard中A1的值,即当前选中的省名。单元格B2:N2均为公式引用,使用Vlookup函数从数据表格中查找返回当前选中省的对应数据。以单元格C2为例,其公式为: =VLOOKUP($A$2,$A$5:$N$36,COLUMN(C5),0)。5.制作图表在工作表data1中以B2:N2为数据源制作图表,格式化至你喜欢的样式,然

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论