半圆型动态仪表盘风格图表

今天跟大家分享一款半圆型动态仪表盘风格图表!真的可以动起来哦!

下午在浏览论坛的时候,刚好看到秋叶老师的一个图表教程,风格是半圆型饼图,用VBA控制。

查看了一下后台的VBA代码,有点小复杂,不过勉强能看懂,自己试了一把,确实可行。

Sub 动起来()

    Dim i As Integer, t As Long
    For i = 1 To 78
        i = i + 1
        Range("b4") = i & "%"
        t = GetTickCount
        Do
            If GetTickCount - t > 5 Then Exit Do
            DoEvents
        Loop
    Next
End Sub

然后就想分享给大家,不过鉴于代码太长大家可能接受不了,所以自己稍微改造了一下,使用了随机函数+VBA自动刷新的组合功能,效果勉强看得过去!

这是原图数据结构:

图表是一个较小的饼图和一个较大的圆环图组合而成。饼图内的指针是由E5单元格的数值0.01模拟。

具体的做法参见之前的一篇推送《绩效管理工具:仪表盘风格图表》(或回复061查看)。

GIF图动态效果如下图所示。

右侧的数据控制图表中较小的饼图,左侧的数据控制图表中外层的圆环图。

而所有数据中B4单元格中的数据由VBA控制:

Sub 动起来()

    Dim i As Integer, t As Long
    For i = 1 To 78
        i = i + 1
        Range("b4") = i & "%"
        t = GetTickCount
        Do
            If GetTickCount - t > 5 Then Exit Do
            DoEvents
        Loop
    Next
End Sub

B4单元格数据范围1%~80%,B5单元格、E4单元格、E6单元格都由B4单元格控制。

圆环图与饼图的第一扇区都起始于270%。

下面跟大家介绍自己改造过的半圆型动态仪表。

数据结构图表都与以上介绍过的相同,维一不同的是控制单元格的方法:

这个图表B15单元格是有RAND()函数控制(rand函数可以随机生成0~1之间的小数)

这里主要介绍一下怎么制作自动更新的图表数据标签和自动刷新的VBA代码。

大家可以看到在动态GIF图表中点击刷新之后,随着B15单元格随机变动,其中数据同步变动,最终带动图表变动,而且图表顶部的数据表也同步变动。

数据标签更新的是B15的数据,插入文本框,将鼠标移入文本框,然后在编辑框种输入“=B15”,然后再修改文本框的框线颜色、背景颜色。

另一方面,rand函数需要使用F9键刷新,才能更新数据,但是小魔方比较懒,不想每次都去按F9,所以直接写了一个自动刷新的VBA语句。

Sub 刷新()

Calculate

End Sub

看吧实在是太简单了。

sub()

……

End Sub

这是VBA的固定语句,就相当于见面打招呼都会说:“你好,再见”一样。

起作用的只有中间那句:calculate ,大概就是从新计算的意思吧。

然后从开发工具中插入一个按钮,打开VBA编辑器,复制以上代码:

然后把按钮制定到刚才新建的宏。

然后点击刷新按钮,就可以看到效果了。

本文分享自微信公众号 - 数据小魔方(datamofang)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-03-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏非著名程序员

Android自定义下拉刷新动画--仿百度外卖下拉刷新

? 好久没写博客了,小编之前一段时间一直在找工作,从天津来到了我们的大帝都,感觉还不错。好了废话不多说了,开始我们今天的主题吧。现如今的APP各式各样,同样也...

211100
来自专栏林德熙的博客

win10 uwp 截图 获取屏幕显示界面保存图片 水印

本文主要讲如何保存我们的屏幕显示的控件,保存为图片。这个也就是截图,截我们应用显示的,我们应用之外的不截图。

13910
来自专栏Golang语言社区

Golang-实现图片缩放

package main import ( "fmt" "graphics" "image" "image/png" ...

51040
来自专栏java一日一条

简单好看的Android圆形进度条对话框开源库

本文介绍CircleProgressDialog开源库的使用及实现的详细过程,该开源库主要实现以下几个功能:

34420
来自专栏九彩拼盘的叨叨叨

前端学习 第1周 第5天

10250
来自专栏青玉伏案

视错觉升级版:多个视错觉效果实现

之前发表过一篇关于视错觉的文章:《视错觉:从一个看似简单的自定义控件说起》,虽然不是用iOS开发中的Mask来实现的,但是原理和Mask原理是一样的,相当于手动...

229100
来自专栏简书专栏

基于Excel2013的合并计算

工作组、求和、利用函数randbetween、合并计算 比如在excel表格中填入=randbetween(1,10),输入时如果需要补全要用鼠标点击,不能按...

16210
来自专栏iOS 开发杂谈

MarkDown 语法

直接回车不能换行, 可以在上一行文本后面补两个空格, 这样下一行的文本就换行了,或者就是在两行文本直接加一个空行,也能实现换行效果,但是这个行间距有点大。

11960
来自专栏落影的专栏

GPUImage详细解析(七)文字水印和动态图像水印

回顾 GPUImage源码解析、图片模糊、视频滤镜、视频水印都已经介绍过,这次带来的是给视频添加文字水印、动态图像水印。 效果展示 “我是水印”的文字,还有心形...

48450
来自专栏分享达人秀

新推出的GridLayout网格布局

本期主要学习的是网格布局是Android 4.0新增的布局,和前面所学的TableLayout表格布局 有点类似,不过他有很多前者没有的东西,也更加好用...

34780

扫码关注云+社区

领取腾讯云代金券