VBA学习(5):批量生成小饼图

news2024/11/23 23:15:59

之前给大家分享了如何用一个函数制作各种常见图表,之后有朋友问,下图中表示精确占比的饼图是怎么批量生成的?

批量生成小饼图有两种常用的方法,一种是用插件,比如Sparklines;另外一种是自己动手丰衣足食,摊手,也就写点VBA小代码得啦。

复制运行以下VBA代码,选择占比值所在的单元格区域,即可批量生成小饼图。

Sub vbaPie()
    Dim cht As ChartObject, rngData As Range, rng As Range
    On Error Resume Next
    For Each cht In ActiveSheet.ChartObjects '删除旧图
        If InStr(cht.Name, "公众号Excel星球") Then cht.Delete
    Next
    Set rngData = Application.InputBox("请选择数据区域", Default:=Selection.Address, Type:=8)
    If Err Then Exit Sub
    rngData.Parent.Select
    Set rngData = Intersect(rngData, ActiveSheet.UsedRange)
    If rngData Is Nothing Then MsgBox "请选择有效数据区域": Exit Sub
    For Each rng In rngData '遍历单元格
        Call CreateCht(rng, Array(rng.Value, 1 - rng.Value))
    Next
    rngData(1).Select
End Sub

Function CreateCht(rng As Range, aRef)
    On Error Resume Next
    Dim cht As ChartObject
    Set cht = ActiveSheet.ChartObjects.Add(100, 100, 200, 200)
    With cht.Chart '图表
        .ChartType = xlPie '指定图表类型
        .SeriesCollection.NewSeries '新系列
        .SeriesCollection (1)
        With .SeriesCollection(1)
            .Values = aRef '数据
            .Points(1).Format.Fill.ForeColor.RGB = RGB(64, 64, 64) '占比颜色
            .Points(2).Format.Fill.ForeColor.RGB = RGB(166, 166, 166) '其它占比颜色
        End With
        .ApplyDataLabels -xlDataLabelsShowNone '干掉标签
        .Legend.Delete '干掉图例
        .ChartTitle.Delete '干掉标题
        With .PlotArea '设置绘图区大小
            .Select
            .Top = 0
            .Height = 170
            .Width = 170
            .Left = 0
        End With
    End With
    cht.Name = "看见星光" & rng.Address  '图表命名
    With ActiveSheet.Shapes(cht.Name)
        .Fill.Visible = msoFalse '取消填充色
        .Line.Visible = msoFalse '取消线条色
        .Height = rng.Height '高
        .Width = rng.Height '宽
        .Top = rng.Top + 1 '位置top
        .Left = rng.Left + 1 '位置left
    End With
End Function

技术交流,软件开发,欢迎加微信xwlink1996 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1834637.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

UDS诊断、ECU刷写、OTA升级、Tbox测试、CANoe实操

每天的直播时间: 周一至周五:20:00-23:00 周六与周日:9:00-12:00,14:00-17:00 TBOX 深圳 涉及过T-BOX测试吗Ota升级涉及的台架环境是什么样的?上…

位图法-有效的数独

有效的数独,主要是判断每行每列每宫有无重复元素。 每行每列用二重循环,每宫比较复杂,需要考虑每一宫的坐标与二重循环ij对应关系 行i,每一宫3行,3列 x3*(i/3)j/3 y3*(i%3)j%3

计算机考研|双非计算机专业是考研还是就业?主要看这一点!

去看一看招聘就知道了,看看公司需要的开发或者计算机岗位要求的东西你在本科的时候有没有精通的 如果你发现:哎?看着招聘的要求好像本科多少都接触过,但现在已经忘得差不多了,或者是,哦,我知道…

金蝶云星空程序员开发快速入门

文章目录 一 前言1.1 学习步骤1.2 学习需知 二、学习金蝶*云星空的步骤2.1 下载金蝶*云星空安装到本地2.2 查看官网的学习资料2.3 如何使用C#进行插件开发2.4 sqlserver的表设计以及存储过程2.5 如何使用python进行插件的开发2.6 第三方程序如何调用金蝶*云星空的数据 三 后记 …

移动硬盘数据恢复,6个亲测有效方法公开!

“我的移动硬盘已经用了很久了,最近不知道是怎么回事,里面有部分重要的数据居然不见了。想问问大家有什么方法可以恢复移动硬盘的数据吗?” 在数字时代的浪潮中,移动硬盘已成为我们存储和携带数据的重要工具。从海量的工作文档、珍…

在虚拟机中安装centos系统,及通过安装包安装jdk1.8,mysql5.7,redis7.2

在虚拟机中安装centos系统,及通过安装包安装jdk1.8,mysql5.7,redis7.2 第一章 CentOS7的下载1.1.使用阿里云开源镜像站下载。第二章 CentOS7的配置2.1.通过VMware 创建一个CentOS7虚拟机2.1.1.打开软件,点击如箭头所示按钮,创建虚拟机2.1.2.点击自定义,之后点击下一步2.1.3…

【触想智能】工业显示器定制时需要注意的重点问题

随着工业自动化的不断发展,工业显示器越来越重要。不同于普通的娱乐和商业应用,工业显示器需要更加耐用、可靠、安全,并且满足特定的工业环境和应用需求。 因此,仔细考虑和选择适合自己的工业显示器至关重要。本文将介绍一些您在进…

【YOLOv10改进[注意力]】使用注意力MLCA改进C2f + 含全部代码和详细修改方式 + 手撕结构图

本文将进行使用注意力MLCA改进C2f的实践,助力YOLOv10目标检测效果的实践,文中含全部代码、详细修改方式以及手撕结构图。助您轻松理解改进的方法。 改进前和改进后的参数对比: 目录 一 MLCA 二 使用注意力MLCA改进C2f 1 整体修改 2 配置文件

World Map Globe Edition 2

只需点击几下,World Political Map - Globe Edition 2就会在场景添加一个美丽且交互式的3D世界地图。将地球预制件拖动到场景中并自定义外观。 完整的资产,具有强大的可视化功能、示例和丰富的API,适用于构建VR、桌面和移动游戏和应用程序。 主要功能: - 在不访问互联网的情…

如何在前端应用程序中实现国际化(以英语为例)

如何在前端应用程序中实现国际化(以英语为例) 一、准备工作确定翻译需求:选择国际化库:创建语言文件: 二、实现步骤安装并引入国际化库:加载语言文件:在组件中使用翻译:实现语言切换…

对话华师大上海人工智能金融学院院长邵怡蕾:AI时代,人文见长的学校会非常有优势

金融,是关乎老百姓钱袋子的国民经济血脉,更是国家核心竞争力的重要组成部分。AI,是当之无愧最具「活力」的行业,也是千行百业革故鼎新的动力引擎。这两个对人类社会发展影响至深的行业,目前仍未展现出令人耳目一新的奇…

探索设计模式——单例模式详解

前言:设计模式的作用主要是为了——利用设计方式的重用来自动地提高代码的重新利用、提高代码的灵活性、节省时间, 提高开发效率、低耦合,封装特性显著, 接口预留有利于扩展。 设计模式的种类有很多种,本篇内容主要讲解…

AI绘画Stable Diffusion 保姆级教程,让AI人物轻松打光的种方法,我不允许你还不会!

大家好,我是画画的小强 我们常常听到这样的观点:光影,如同摄影的精髓,为图像赋予难以抗拒的质感和情感深度。 用AI生成的图片为什么总是觉得比较“假”,主要还是光影不足! 今天我将一一解析多种光影调控…

MyBatis——增删改查

核心配置文件 MyBatis核心配置文件的顶层结构如下&#xff1a; <environments> 元素 <typeAliases>元素 作用&#xff1a; 配置文件完成增删改查 准备环境 创建数据库表tb_brand -- 删除tb_brand表 drop table if exists tb_brand; -- 创建tb_brand表 create t…

龙芯的 新世界 与 旧世界

但是基本可以 确定 旧世界应该是 有 mips 的代码的。 新世界 应该是 loongarch . 这是 龙芯派 2k300 的连接。 6.Github相关仓库 龙芯派相关源码仓库&#xff1a;https://github.com/LoongsonDotNETCommunity/LoongsonPI 龙芯派Cookbook仓库&#xff1a;https://github.com/L…

UML详解

1.what is the UML UML 全称是 Unified Modeling Language&#xff08;统一建模语言&#xff09;&#xff0c;它以图形的方式来描述软件的概念 2.它存在的目的 UML 的目标是通过一定结构的表达&#xff0c;来解决现实世界到软件世界的沟通问题。 3.什么是模&#xff0c;…

C++语法15 多分支结构(if多分支与switch结构)

if else if else 多分支结构基本框架 if&#xff08;条件1&#xff09;语句1; //满足条件1就执行 else if&#xff08;条件2&#xff09;语句2; //不满足条件1&#xff0c;但是满足条件2执行 else if (条件3&#xff09;语句3; //不满足条件1和条件2&#x…

【链表经典面试题】LeetCode138.复制带随机指针的链表(链表深拷贝)

&#x1f4c7;文章目录 &#x1f680;题目描述&#x1f680;思路1&#xff1a;&#x1f680;思路2&#xff1a;&#x1f680;完整代码 &#x1f680;题目描述 解读&#xff1a; 题目意思就是 给你一个链表 这个链表中除了有next指针之外 还有一个指向这个链表的随机位置的一个指…

在哪里可以查到一手的标讯信息?

标讯信息集招投标讯息的简称。在市场上&#xff0c;标讯是一种非常关键的信息&#xff0c;包括招标公告&#xff0c;文件&#xff0c;截止日期等关键内容&#xff0c;便于需求方和供应商进行业务合作。 对于企业来说&#xff0c;及时获取到最新的标讯信息是非常重要的&#xf…

安装VS Code 提示This User Installer is not meant to be run as an Administrator问题

目录预览 一、问题描述二、原因分析三、解决方案四、参考链接 一、问题描述 在vs code官网&#xff08;https://code.visualstudio.com/&#xff09;下载安装包&#xff0c;显示如下提示信息&#xff1a; This User Installer is not meant to be run as an Administrator.…