cmake取消宏定义_EXCEL工作簿如果禁用宏,将无法工作

这篇博客介绍了如何利用VBA在Excel中设置工作簿,使得如果禁用宏,工作簿将无法正常工作。作者分享了两个关键的事件过程代码,一个是`Workbook_BeforeClose`,在关闭工作簿前隐藏所有非指定的工作表;另一个是`Workbook_Open`,在打开工作簿时恢复工作表的可见性。通过这种方式,强制用户启用宏以正常使用工作簿。
摘要由CSDN通过智能技术生成

92e179ac8ab1ef5034b39ec50502beae.png

大家好,我很早以前开始学习利用VBA,至今已有20多年了。开发过大小不同的VBA程序程序已经数不清了。我的平台,以传递我多年实际经验为宗旨,授人以渔,交给大家真正的VBA知识。如果大家对VBA感兴趣,认为VBA可以给自己的实际工作带来切实的帮助,最好系统学习我的教程,成为我的学员,汲取我的经验。由于本人年龄大了,而且学员众多,目前只能做到满足对学员答疑,辅导,对非学员朋友只能看我自己的时间是否允许,还望非学员朋友见谅。

今日推出常用“积木”过程案例分享第322期,内容是:如何做到如果禁用VBA将无法继续工作。VBA是利用Office实现个人小型办公自动化的有效手段(工具)。这是我的对VBA的定义,我推出的专辑就是我多年实际利用VBA的经验记录,都来源于我多年的实践经验。目前我已经将所有代码修正为适合64位和32位两种系统,大家要把这些代码块作为一块块的积木对待,平时要多积累,建立自己的“积木库”,用时拿来可以修正、组合。这就是我的“积木编程”的思想。这些讲解就是我推出的“积木”方案,希望大家加以利用。最近代码多是出自我的第一套教程”VBA代码解决方案”。这些是非常实用的问题解决方案。

4e6133a42e5f988e7b93d105b86a773f.png

========================= ① =========================

Private sh As Worksheet

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Sheets("空白").Visible = True

For Each sh In ThisWorkbook.Sheets

If sh.Name <> "空白" Then

sh.Visible = xlSheetVeryHidden

End If

Next

ActiveWorkbook.Save

End Sub

Private Sub Workbook_Open()

For Each sh In ThisWorkbook.Sheets

If sh.Name <> "空白" Then

sh.Visible = xlSheetVisible

End If

Next

Sheets("空白").Visible = xlSheetVeryHidden

End Sub

b3275e57ab0ced6270e93ecb26037466.png

=========================②========================

代码解读:

1) 第2行到第10行代码是工作簿的BeforeClose事件过程,在工作簿关闭前隐藏除“空白”表以外的所有的工作表。

2) 第3行代码将“空白”表的Visible属性设置为True,使其可见。

3) 第4行到第8行代码使用For Each...Next语句遍历工作簿中所有的工作表,将除“空白”表以外的所有工作表的Visible属性设置为xlSheetVeryHidden,使之隐藏。

Visible属性设置为xlSheetVeryHidden后工作表不能通过“格式”→“工作表”→“取消隐藏”菜单来显示隐藏的工作表。

4) 第9行代码使用Save方法保存代码所在工作簿的更改,在关闭工作簿时不显示消息框。

5) 第10行到第18行代码是工作簿的Open事件过程,在打开工作簿时将除“空白”表以外的所有工作表的Visible属性设置为xlSheetVisible,取消隐藏。如果打开工作簿时禁用宏,则工作簿中除了“空白”表以外,其他的工作表还处于深度隐藏的状态,这样就达到强制用户启用宏的效果,当然这还需要VBA工程保护的配合。

a7c62af1e2c5fc52d3219d81e153c197.png

各套教程的介绍:

第1套:VBA代码解决方案

第2套:VBA数据库解决方案

第3套:VBA数组与字典解决方案

第4套:VBA代码解决方案之视频

第5套:VBA中类的解读和利用

第6套:VBA信息获取与处理

上述教程的学习顺序:1→3→2→6→5或者4→3→2→6→5。

分享成果,随喜正能量

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值