首页
学习
活动
专区
圈层
工具
发布

Excel自定义任意图表的通用模式

Excel作图通常使用自带图表或第三方插件图表。自带图表种类比较少,仅仅包含柱形图、条形图、折线图等基础图形,且功能有限。优秀的第三方插件图表是很好的扩充。...现在,在Excel中也可以轻易的实现这种自定义,不过需要的是VBA+SVG(一点VBA都不懂的读者先不要吓跑,都是套路操作,仅仅需要少量代码)。...自动刷新 ---- 刷新图表有两种方式,一种是指定一个按钮,点击刷新: 另外可以自动刷新,新建一个新的宏,如下所示,借助Worksheet_Change事件,当工作表数据有变更自动促发VBA的运行。...VBA+SVG在Excel制图的优势比DAX+SVG在Power BI中非常明显:首先,VBA中的For 语句可以很方便的循环,DAX需要新建虚拟索引;其次,Excel单元格具有灵活性,在Power BI...常规状态下还是建议使用内置或者第三方插件图表。如果你喜欢折腾,或者有业务需求,但市面上实在没有图表可以满足,不妨试试本文的方案。

3.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Workbook工作簿对象基础

    一、工作簿对象的引用 一个工作簿对象workbook实际就是一个excel文件,在vba代码使用时引用它主要有两种方式,一种是通过工作簿对象名称,一种是是通过index索引号。...Workbooks("vba.xlsm").Worksheets.Count表示统计vba.xlsm工作簿对象的普通工作表的数量,在引用工作簿对象时,表示方法为:Workbooks("vba.xlsm"...然后在for循环中循环索引号的数值,workboks(index索引号).name表示不同工作簿的名称。循环中在立即窗口显示工作簿的name名称。(顺序与工作簿打开的顺序一致。)...循环中workbooks.count的数值为3,for循环从1指3。 三、Activeworkbook Activeworkbook是指当前活动的工作簿。...定义变量i为字符串变量后,将thisworkbook对象,即代码所在工作簿的name名称赋值给变量i,最后在立即窗口中显示。当前代码所在的工作簿的名称为vba.xlsm。

    3.6K30

    「数据ETL」从数据民工到数据白领蜕变之旅(三)-除了Excel催化剂之外PowerQuery新物种同样值得期待

    在自助式BI时代以前,Excel级别的数据ETL工作,非常低效,动不动就要启用VBA来完成一些常见的需求,自带的原生功能,未能满足大量的繁琐数据ETL刚需功能。...微软官方插件与第三方插件待遇不同 在使用第三方插件的过程中,可以弥补一些数据处理的刚需,但因每个插件的定位及用途不一,暂没有发现哪个像Excel催化剂这样专注做一些高阶的应用,同时第三方插件的使用体验,...PowerQuery一个很深入的集成性在于,其数据加载的过程中,原生地开发其以Excel智能表的形式加载出来,并且以数据连接的方式和源数据和加工过程相连接,所以非常好的体验在于数据源更新后,只需刷新一下结果表即可按原来配置过的逻辑对数据进行更新...在第三方插件中,这个过程肯定需要重新在界面上重来一遍,所以重复性逻辑数据更新还是压倒性地好于第三方插件。...相对Excel的高级函数技术及VBA才能处理的方案,在PowerQuery中变得非常简单。

    1.4K20

    工作簿有密码,自动刷新数据,没问题! | PQ重要技巧

    这个时候,不要忘了还有咱们的老朋友VBA嘛!通过Power Query与VBA的强强联合,咱们就可以刷新对带密码Excel工作簿数据的自动刷新。...- 2 - Excel和PQ中的处理 为方便实现动态路径,我们先建立一个路径表,类似于我在以前文章(视频)《批量汇总Excel数据的建议解法-1_同一工作簿内多表》里的做法,这里直接在Excel...里处理好数据源的引用路径,既方便Power Query的引用,也方便在VBA里引用: 同时将这个表接入到Power Query里: 这样,就可以在获取数据源时直接引用已经处理好的路径...- 3 - VBA实现解密刷新 通过VBA,我们可以用密码打开数据源工作簿,清除密码,然后刷新查询,刷新完毕后再对数据源工作簿重新加密……是不是很像“把大象放进冰箱里”的三个步骤?...上面通过与VBA的强强联合,我们实现对Excel的Power Query引用加密Excel数据的自动刷新,但是,Power BI里没有VBA哦,怎么办?

    4.8K41

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

    ▼ 下午在浏览论坛的时候,刚好看到秋叶老师的一个图表教程,风格是半圆型饼图,用VBA控制。 查看了一下后台的VBA代码,有点小复杂,不过勉强能看懂,自己试了一把,确实可行。...大家可以看到在动态GIF图表中点击刷新之后,随着B15单元格随机变动,其中数据同步变动,最终带动图表变动,而且图表顶部的数据表也同步变动。...另一方面,rand函数需要使用F9键刷新,才能更新数据,但是小魔方比较懒,不想每次都去按F9,所以直接写了一个自动刷新的VBA语句。...Sub 刷新() Calculate End Sub 看吧实在是太简单了。 sub() …… End Sub 这是VBA的固定语句,就相当于见面打招呼都会说:“你好,再见”一样。...然后从开发工具中插入一个按钮,打开VBA编辑器,复制以上代码: 然后把按钮制定到刚才新建的宏。 然后点击刷新按钮,就可以看到效果了。

    2.6K60

    打破Excel与Python的隔阂,xlwings最佳实践

    但是 Python 做数据任务有个不太好的地方,没有一个舒服的操作界面(虽然有许多第三方库做界面,但是实在太麻烦) Excel 就是一个很好的操作界面,为何不结合他们?...---- 工具安装 首先安装 xlwings: pip install xlwings xlwings 是 Python 的一个第三方库,主要用于让你的 Python 代码可以在 Excel 上被调用...---- 直觉理解运行机制 目前为止,我们没有编写一句 vba 代码,只是简单定义出一个加载数据的 Python 自定义函数,就可以在 Excel 上使用公式实现效果。...Excel 上无须点击"导入函数"按钮,只要公式有刷新(比如修改公式引用到的单元格的值),就能看到最新结果: 只有10行结果 你可能会觉得每次修改都点一下导入按钮,万无一失。...这问题由于 xlwings 在执行 vba 的方法时,会启动一个 Python 进程(只有首次运行的时候),然后加载 myproject.py 中的代码。但他没有设置启动目录。

    6.7K50

    攻击者开始使用 XLL 文件进行攻击

    这些加载项都是为了使用户能够利用高性能函数,为 Excel 工作表提供 API 调用接口。与 VBA 等其他接口相比,该方式能够更有效地扩展 Excel 的能力,使其支持更多功能,例如多线程。...这意味着,与要求用户启用宏的 VBA 宏不同,受害者只要打开就会执行恶意代码。 由于 XLL 是可移植的可执行文件,许多电子邮件网关都会拦截该格式的文件或者仅允许受信任签名的加载项。...XLL 恶意软件出售 因为 XLL 恶意文件的快速增长,我们在地下犯罪论坛上进行了相应的调查,评估使用这种文件格式的恶意工具和服务的流行程度。...数据在循环中解密,首先确定数据的位置与大小,紧接着进行异或解密。每处理八个字节,密钥就要对用改变。...△ 解析加载模块 然后,恶意软件使用解析后的 API 函数下载 Payload 并将其存储执行。

    1.9K10

    《Python for Excel》读书笔记连载2:为什么为Excel选择Python?(续)

    Python依赖缩进来定义代码块,就像您在if语句或for循环中使用代码块一样。大多数其他语言使用大括号代替缩进,VBA使用诸如EndIf之类的关键字,正如我们刚才在代码段中看到的那样。...科学计算功能后来以第三方软件包的形式添加。这有一个独特的优势,即数据科学家可以使用与web开发人员相同的语言进行实验和研究,web开发人员可能最终围绕计算核心构建一个可用于生产的应用程序。...缺少对科学计算的支持是VBA的一个明显限制。但是,即使看看核心语言特性,VBA也落后了,这在下一节中会看到。 现代语言特征 自Excel 97以来,VBA语言在语言特性方面几乎没有任何重大变化。...相比之下,即使Excel VBA在Windows和macOS上运行,也很容易引入仅在Windows上运行的功能。...VBA编辑器中的“工具->引用”以添加引用,你几乎总是在处理仅在Windows上运行的代码。

    3.6K10

    攻击者如何使用 XLL 恶意软件感染系统

    这种技术在 MITRE ATT&CK 中被跟踪为T1137.006。此类加载项背后的想法是它们包含高性能函数,并且可以通过应用程序编程接口 (API) 从 Excel 工作表中调用。...与 Visual Basic for Applications (VBA) 等其他脚本接口相比,此功能使用户能够更强大地扩展 Excel 的功能,因为它支持更多功能,例如多线程。...使这种技术变得危险的是,只需单击一下即可运行恶意软件,这与需要用户禁用 Microsoft Office 的受保护视图并启用宏内容的 VBA 宏不同。...数据在一个循环中解密,首先确定数据的位置和大小,然后使用 XOR 操作对其进行去混淆处理。每 8 个字节后,密钥被相乘并添加到两个不同的常量。 图 9 – 自定义 Excel 加载项的解密循环。...然后,恶意软件使用解析后的 API 函数从 Web 服务器下载有效负载,将其存储在本地,然后执行。

    2.9K10

    使用VBA在PowerPoint中创建倒计时器(续)附示例PPT下载

    接上篇:使用VBA在PowerPoint中创建倒计时器 标签:VBA,PowerPoint编程 看看倒计时器的VBA代码: Dim time As Date time = Now() Dim count...在循环中,下面的语句在矩形形状中更新未来时间和当前时间之差: ActivePresentation.SlideShowWindow.View.Slide.Shapes("countdown").TextFrame.TextRange...这可以在Do Loop循环中添加一个if-then条件。当然,也可以在倒计时结束时将演示重定向到某个幻灯片或播放声音效果,而不是使用消息框。...End If 如果想在幻灯片放映模式下直接更改倒计时值而无须接触VBA代码,可以在幻灯片中添加一个名为TextBox1的ActiveX文本框控件,可以在其中键入希望倒计时的秒数。...同样,也可以使用VBA代码在PowerPoint中制作显示增加的时间的“计时器”。

    4.8K41

    【坑】如何心平气和地填坑之拿RSViewSE的报表说事

    在某一个软件内,你所能够调用的ActiveX控件的种类和数量取决于该软件所在计算机上安装的第三方软件的种类和数量,举个例子,你只有安装了Excel软件,你的组态软件内才能调用到Excel相关的控件。...在RSViewSE软件里面,支持VBA脚本,其编辑器可通过选择任意对象右键>VBA代码进入 在画面内放个SE软件的按钮,进入其脚本编辑页面 RSViewSE软件的VBA脚本编辑页面 按钮的事件 选择按钮的按下事件...注意,在VBA/VB/VBS语言里面,英文输入法的单引号’ 是注释符 编程原则:结构化、模块化、思路清晰、注释清楚、能够用子程序的就不要全都挤一块 选择按钮的按下事件 先设置表格的样式,合并单元格...思考:如果让这个报表的数据实时刷新?...我们拿RSVeiwSE里面的系统时间秒做实验 把秒写入表格内 设计:需要有一个周期性的时间事件触发表格数据的写入动作,才可以按一定的周期刷新表格的数据 最简单方法,在画面内放一个文本框,关联系统时间秒

    4.3K41

    怎么用VBA删除Power Query生成的查询?

    有时候,我们希望只将Power Query相关的查询结果给用户,又或者需要将查询的结果固化下来(不随新数据的加入而刷新),而被其他查询引用(比如有些工作中需要做不同阶段的数据检查、校验等),...,又能利用VBA对Power Query的执行过程实现自动化!...---- 用VBA删除Power Query生成的查询,有以下2种情况。 一、删除连接,但不删除查询 即仅删除查询和结果数据表间的连接,使数据表不能刷新。...比如有如下查询“表1”: 其连接情况如下(特别要注意的是,查询名称为“表1”,查询连接的名称为“查询 - 表1”): 那么,要删除查询连接,VBA语句如下:...同时,从这里也可以看出,在Excel里,Power Query生成查询时,查询和查询连接是两个不同的对象,可以按需要分开处理。

    2.8K30

    【B4J】怎么用VBAVB6写一个WebApi服务器端程序之JWT(Token)登录认证(三)

    历史文章: 【B4J】怎么用VBA/VB6写一个Jar Rest WebApi服务器端程序并上线(一) 【B4J】怎么用VBA/VB6写一个WebApi服务器端程序之MySQL数据库连接(二) 接下来继续今天的内容...需要使用这两个数据库的只要打开jar包放到额外类库文件夹和打开main模块注释即可 好了,继续今天的内容(使用jwt认证机制认证数据访问权限): 第一步,创建一个JWT帮助类,里面包含了授权token和刷新...token的生成,token验证等方法 第二步,创建一个,请求过滤(Server Filter)帮助类 2.1.创建一个过滤模块 2.2.在main模块中,添加过滤器(注意顺序,过滤器全部添加到handle...第三步,在login登录接口生成jwt-token 第四步,在jwt过滤模块,添加token认证校验 4.1.我们再次访问login时,发现也会被拦截,为什么?...项目开源地址: https://gitee.com/wxvbee/b4-j-web-api-project

    9110

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

    今天要跟大家分享的是数据地图系列的第九篇——excel(VBA)数据地图! 关于VBA在excel中的应用非常广泛,本篇仅仅是给出示例代码,不会对基础操作做太过详细的讲解。...7、在C4列中匹配B列指标值的颜色范围。(使用vlookup函数) ? 8、编辑VBA填充代码 Alt+F11打开VBA代码编辑器,在thisworkbook中写入如下代码后关闭VBA窗口。 ?...Sub fill_color() Application.ScreenUpdating = False '暂停刷新屏幕 For i = 4 To 34 '为数据源的起始和结束行号...Interior.Color '对各省的图形使用其颜色栏的值作为名称所指向的单元格的颜色填充 Next i Application.ScreenUpdating = True '恢复刷新屏幕...当然,如果你想更换填充效果的话,可以在五个颜色栏中复制入自己准备好的颜色。 记得在地图做完之后一定要使用分档阀值区域作为图例引用在数据地图周围。

    6K60
    领券