已打开禁用宏怎么还是打不开?抱歉,如果禁用宏你将无法工作
【分享成果,随喜正能量】睿智的人看得透,故不争。豁达的人想得开,故不斗。得道的人晓天意,故不急。厚德的人重谦和,故不噪。明理的人放得下,故不痴。自信的人肯努力,故不误。重义的人交天下,故不孤。浓情的人淡名利,故不独。宁静的人行深远,故不折。知足的人常快乐,故不老。
《VBA代码解决方案》这套教程是我最早推出的教程,目前已经是第二版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一下把自己喜欢的代码摆好。
这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过度教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是第21讲:抱歉,如果禁用宏,你将无法工作
第二十一讲 在EXCEL中,如果禁用VBA将无法继续工作朋友们好,今日我们继续讲解VBA代码解决方案的第21讲,这讲的内容中我们会讲解在使用VBA开发的工作簿文件完成后,要求用户在打开工作薄时同时启用VBA代码。也就是说我们希望用户在打开工作簿时启用宏,此时可以使用“禁用宏则关闭工作簿”的功能外。
还可以隐藏所有有数据的工作表,如果用户在打开工作簿时禁用宏则只显示一张空白的工作表,达到强制启用宏的效果。
这里会用到应用于Worksheets(工作表)对象的Visible属性。这个属性决定对象是否可见。
语法如下:expression.Visible
参数
expression是必需的,该表达式返回上面的对象之一。
Visible属性可以设置为下面的常量之一。
a) xlSheetHidden ,其值为 0,表示隐藏对象,可以通过“格式”→“工作表”→“取消隐藏”菜单使对象重新可见,等同于设置为False。
b) xlSheetVisible 其值为 -1表示使对象重新可见,等同于设置为True。
c) xlSheetVeryHidden 其值为2表示隐藏对象,使该对象重新可见的唯一方法是将此属性设置为True或xlSheetVisible。
1 利用Visible属性,使禁用VBA时工作表无法有效显示我们看如下代码:
Private sh As Worksheet
Private Sub Workbook_BeforeClose(Cancel As Boolean) '第21讲 如何做到如果禁用VBA将无法继续工作
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() '第21讲 如何做到如果禁用VBA将无法继续工作
For Each sh In ThisWorkbook.Sheets
If sh.Name <> "空白" Then
sh.Visible = xlSheetVisible
End If
Next
Sheets("空白").Visible = xlSheetVeryHidden
End Sub
代码截图
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实践经验,全部浓缩在下面的各个教程中:
- 02-23金钟国穿西装的反应:金钟国解释服装价格误会引发争议
- 02-15可口可乐的顶级配方,可口可乐的配方真的只有两个人知道
- 05-11写人物的好词好句五年级:小学语文好词好句写人物怎么写
- 04-11直接加女生微信意图太明显了,为什么美女总是加你微信
- 09-12暗黑破坏神2 重制地图刷装备:暗黑破坏神2地狱难度下RUSH劳模心得体会
- 06-12cad中动态属性块如何制作?CAD干货小技巧属性块的应用
- 04-13湘峰机械厂在哪里,湖北省国营红峰机械厂
- 04-05朋友圈少一张的配图可爱 超可爱的朋友圈配图赶紧收藏拿走吧
- 12-16oppowatch测海拔:IT之家评测室,OPPOWatch
- 11-11容易让男人爱上的女人:这三种男人容易让女人受伤
- 05-29文明交通我先行简报:嘉顺社区,文明交通你我同行
- 11-08不找个小奶狗都不知道姐弟恋:又来一个85花咋都爱搞姐弟恋啊
- 05-23怎样坚持正确的历史观 历史的实质是让我们了解过去
- 06-23iphone6s为什么没过时?发布已经三年半iPhone6s还能再用两年吗
- 01-21贵州王祖贤今天有直播吗?浙江网红假扮王祖贤开直播
- 05-17车路协同云控平台,车能路云如何融合发展
热门
推荐
- 1家庭英语故事表演欣赏223
- 2记录灵感的常用方法334
- 3【企业年度工作总结报告范文】企业工会的年度工作总结范文131
- 4关于高一学生班主任综合评语485
- 5陈奂生进城新传相声338
- 6黑白系列的优秀摄影作品赏析414
- 7中班消防演练黑板报259
- 8用良字取男孩时尚的名字359