这套教程共三册,147讲。它涵盖的内容非常广泛,也是初学者和中级之间的过渡教程。修改内容主要提供了程序源代码文件以及32位和64位代码的代码修改。未来我们会逐步为您推出。今天的内容是第21讲:抱歉,禁用宏将无法工作
第二十一讲 在EXCEL中,如果禁用VBA将无法继续工作
朋友们大家好,今天我们将继续讲解第21讲的VBA代码解决方案。本讲我们将讲解使用VBA开发的工作簿文件完成后,要求用户同时启用VBA代码打开工作簿的时间。也就是说,我们希望用户在打开工作簿时启用宏。这时,我们就可以使用“禁用宏并关闭工作簿”功能。
您还可以隐藏所有包含数据的工作表。如果用户在打开工作簿时禁用宏,则只会显示一个空白的工作表,达到强制启用宏的效果。
此处将使用应用于Worksheets 对象的Visible 属性。该属性决定对象是否可见。
语法如下:表达式.Visible
范围
表达式是必需的,并返回上述对象之一。
Visible 属性可以设置为以下常量之一。
a) xlSheetHidden,其值为0,表示该对象被隐藏,通过“格式”“工作表”“取消隐藏”菜单可以使该对象再次可见,相当于设置为False。
b) xlSheetVisible 值为-1表示使对象再次可见,相当于设置为True。
c) xlSheetVeryHidden 值为2 表示该对象是隐藏的。使对象再次可见的唯一方法是将此属性设置为True 或xlSheetVisible。
1 利用Visible属性,使禁用VBA时工作表无法有效显示
我们看下面的代码:
私人sh 作为工作表
Private Sub Workbook_BeforeClose(Cancel As Boolean) '讲座21 如何在禁用VBA 的情况下使其无法继续工作
工作表('空白').Visible=True
对于ThisWorkbook.Sheets 中的每个sh
如果sh.Name '空白' 那么
sh.Visible=xlSheetVeryHidden
下一个
活动工作簿.保存
Private Sub Workbook_Open() '第21 讲如何在禁用VBA 的情况下使其无法继续工作
对于ThisWorkbook.Sheets 中的每个sh
如果sh.Name '空白' 那么
sh.Visible=xlSheetVisible
下一个
工作表('空白').Visible=xlSheetVeryHidden
代码截图
2 代码的讲解及实际测试效果
代码说明:
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项目保护的配合。
代码运行效果,禁用宏并启用VBA代码后的工作表视图:
今日内容回顾:
1 当禁用VBA代码时如何使视图仅显示“空白”页面。
2 xlSheetHidden的值是什么?有什么意义?
3.你明白本节两段代码的含义吗?
本讲内容参考程序文件:VBA代码解答修订版(1-48).xlsm
我20多年的VBA实践经验全部浓缩在以下教程中:
标题:抱歉,如果禁用宏,您将无法工作
链接:https://www.gbbxw.com/news/rj/18159.html
版权:文章转载自网络,如有侵权,请联系删除!
用户评论
这个游戏中使用宏的能力真的至关重要吗?如果没有,那会不会限制玩家的创造力呢?
有11位网友表示赞同!
"如果你禁用宏就不能工作",这听起来像是对一些技术操作有严格要求的游戏。
有10位网友表示赞同!
玩这个游戏的时候发现自己很依赖宏功能。禁用它以后,感觉自己像是失去了武器。
有8位网友表示赞同!
不启用宏功能似乎对游戏体验影响很大,需要适应全新的策略和操作方式。
有9位网友表示赞同!
对于新手玩家来说,如果不能使用宏,初上手可能会觉得游戏很困难。
有15位网友表示赞同!
"禁用宏后无法工作"可能是想强调游戏的高度互动性和复杂的系统设计。
有17位网友表示赞同!
玩家群体似乎对于能否使用宏有争议性。有的人说这提高了游戏的公平性,但也有人表示失去了一个重要功能。
有6位网友表示赞同!
这个游戏对策略和操作的依赖度很高,在不启用宏的情况下是否会改变整个体验感受呢?
有20位网友表示赞同!
"如果你禁用宏就不能工作"这句话提示了游戏对技术操作的高度要求,是否所有玩家都能适应这样的环境?
有6位网友表示赞同!
"如果禁用宏,你将无法工作"——这句标语在宣传上确实引起了不小的反响,有人表示好奇也有人感到沮丧。
有17位网友表示赞同!
对于一些玩家而言,这个信息让他们更期待挑战自我,在没有宏的情况下也能获得胜利的成就感。
有14位网友表示赞同!
虽然这句话在某些玩家看来有些过分强调技术要求了,但不可否认对游戏深度和策略性有极大提升效果。
有6位网友表示赞同!
"如果你禁用宏就不能工作"可能暗示玩家需要接受更高一级的游戏机制来享受完整体验。
有10位网友表示赞同!
对于喜欢自由度高的玩家来说,这款游戏似乎并不友好。没有宏的情况可能会导致一些功能使用上的不便。
有17位网友表示赞同!
这种类型的游戏往往对技术和战略有极高的要求,禁用宏可能是为了确保所有玩家都能公平竞争。
有16位网友表示赞同!
一些高玩表示能够适应不使用宏的情况反而更能证明游戏的可玩性和深度,对于他们来说挑战更大也是乐趣。
有16位网友表示赞同!
"如果你禁用宏就不能工作"让很多新玩家思考自己是否准备好迎接技术门槛较高的游戏风格。
有12位网友表示赞同!
这个游戏的独特之处在于它强化了操作与策略结合的重要性,在没有宏的情况下更加考验玩家的反应和智慧。
有16位网友表示赞同!
对于希望保持游戏公平性的玩家来说,禁用宏可能是一大亮点,但这也让依赖宏的玩家感到不适应。
有6位网友表示赞同!
"如果你禁用宏就不能工作"这句话对玩家的技能水平提出更高要求,是否也能让游戏更具挑战性和深度?
有12位网友表示赞同!