[VBA] 为多个工作表的工作簿制作一个悬浮按钮(自动显示/隐藏)
最近工作时遇到个问题,需要对excel的多个分表进行整理,整理的数据结构都是相同的,只是内容有差异。如果为每个工作表添加一个按钮,执行起来会挺麻烦。可选方式有两个:
1、为宏添加快捷键,使用快捷键来处理当前工作表。
2、制作一个悬浮按钮,打开工作簿时就显示,切换工作表时也一直显示,当前工作表不处于激活状态就隐藏。
我选了第二种方式,直观,不用去记忆快捷键。此处只分享按钮显示隐藏的思路,代码不高深,一看就懂。整理的代码我是使用python的xlwings库来编写的,就不发出来了,反正别人也不适用。
VBA工程密码:52pojie
压缩密码:52pojie
有兴趣的可以使用我另一个帖子 使用VBA破.解 vba工程密码 的工具尝试破.解下,由于Excel版本问题,不一定都能破解{:1_886:}。
测试文件:
截图展示:
zn1996 发表于 2022-7-7 14:10
不如使用CustomUIEditor 添加一个选项卡按钮吧,集成在xlsm文件里的。
软件打开后File>>Open>>选择一个xlsm格式文件,使用Insert>>Office 2007 Custom UI Part,然后把如下代码添加进去就行,最后onAction 为实际调用的过程名称,然后把VB代码加到VBA任意模块里
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
<tabs>
<tab id="MyTab1" label="照片信息提取工具">
<group id="kyfbg" label="照片信息提取">
<button id="选择" label="选择文件夹" imageMso="ImportExcel" size="large" supertip="选择文件夹,将其中所有照片提取至表格"/>
<button id="生成" label="生成JSON" imageMso="FilePrintQuick" size="large" supertip="根据新内容,重新生成JSON信息"/>
<button id="清空" label="清空列表" imageMso="InkDeleteAllInk" size="large" supertip="清空数据,并重置标题"/>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
Sub 选择文件(control As IRibbonControl)
你的具体代码或者调用函数或过程
End Sub
我担心有人点菜单弹出错误,所以加了个判断,但是在写代码的时候没测试,所以类型搞错了。按第二张图小改一下就OK。 wkdxz 发表于 2022-7-7 11:09
我担心有人点菜单弹出错误,所以加了个判断,但是在写代码的时候没测试,所以类型搞错了。按第二张 ...
哈哈; let me try; thank you for sharing; 谢谢分享,试试怎么样。 不如使用CustomUIEditor 添加一个选项卡按钮吧,集成在xlsm文件里的。https://s1.ax1x.com/2022/07/07/jwMDBV.jpg zn1996 发表于 2022-7-7 14:10
不如使用CustomUIEditor 添加一个选项卡按钮吧,集成在xlsm文件里的。
推荐的软件确实不错,不过我还不太会用,先谢谢了 最羡慕会用vba办公自动化的大神 感谢分享。