前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据地图系列9|excel(VBA)数据地图!

数据地图系列9|excel(VBA)数据地图!

作者头像
数据小磨坊
发布2018-04-10 17:12:51
4.7K0
发布2018-04-10 17:12:51
举报
文章被收录于专栏:数据小魔方数据小魔方

今天要跟大家分享的是数据地图系列的第九篇——excel(VBA)数据地图!

关于VBA在excel中的应用非常广泛,本篇仅仅是给出示例代码,不会对基础操作做太过详细的讲解。

要说为什么手动操作都可以完成的地图填充,为啥要弄得这么复杂。其实理由很简单,就是效率,可以以一种一劳永逸的方式节省时间、提高效率。

否则你只能每一次都手动操作,重复劳动,想想一下,靠简单几句的代码,就可以瞬间完成批量的图形填充效果,那么花一点儿心思做一套模板(可以循环使用),真的是太值得了。

下面是VBA数据地图的详细制作步骤:

1、首先你需要一个纯色的矢量地图素材。

这个问题早在数据地图的入门篇里已经解决了。

数据地图入门篇——素材获取!

2、图形命名

这里需要我们给每一个省份(或者图形)命名。

选中某一个省份图形,在左上角的名称栏中直接修改定义或者,在绘图工具——选择窗格中,双击该图形默认名称,进行自定义。(中国地图就需要定定义34个省级行政单位名称)。

3、输入数据:

关于作图的数据组织:这里需要三列数据,一列省份名称、一列指标值,一列颜色填充值(需要使用函数自动获取)。

4、定义组距

5、定义颜色填充范围

将F9:G13单元格区域选中并定义名称为color_table

使用concatenate函数制作分段值范围。

将D9-D13区域的五个单元格分别命名为color1~color5。(命名方法同上)

然后将提前准备好的地图填充色复制进D9-D13单元格中。

7、在C4列中匹配B列指标值的颜色范围。(使用vlookup函数)

8、编辑VBA填充代码

Alt+F11打开VBA代码编辑器,在thisworkbook中写入如下代码后关闭VBA窗口。

Sub fill_color()

Application.ScreenUpdating = False '暂停刷新屏幕

For i = 4 To 34 '为数据源的起始和结束行号

ActiveSheet.Shapes(Range("DataMap!A" & i).Value).Fill.ForeColor.RGB = Range(Range("DataMap!C" & i).Value).Interior.Color

'对各省的图形使用其颜色栏的值作为名称所指向的单元格的颜色填充

Next i

Application.ScreenUpdating = True '恢复刷新屏幕

End Sub

9、插入按钮,激活宏代码

插入按钮控件,右键,指定宏并确定。

10、最后鼠标点击一下按钮,看看效果吧。

当然,如果你想更换填充效果的话,可以在五个颜色栏中复制入自己准备好的颜色。

记得在地图做完之后一定要使用分档阀值区域作为图例引用在数据地图周围。选中D9:E13区域,点击照相机功能,然后在数据地图区域释放。

还有一点需要提示一下,这种内涵VBA宏代码的文件需另存为xlsm格式才能保留宏功能,否则就会前功尽弃。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据小魔方 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档