强制启用宏与深度隐藏工作表

打开VBE编辑器在hisWorkbook添加VBA代码,如下图

操作方法:

按ALT F11组合键打开VBE编辑器,复制下面的代码到ThisWorkbook里面

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Sheets('空白').Visible = -1 '空白表取消隐藏

Dim sh As Worksheet

For Each sh In ThisWorkbook.Sheets

If sh.Name <> '空白' Then

sh.Visible = 2 '其他的表深度隐藏

End If

Next

Sheets('空白').Select

ActiveWorkbook.Save '保存更改

End Sub

Private Sub Workbook_Open()

Application.Visible = True '显示工作簿

For Each sh In ThisWorkbook.Sheets

If sh.Name <> '空白' Then

sh.Visible = -xlSheetVisible '除'空白'表以外所有工作表取消隐藏

End If

Next

Sheets('空白').Visible = 2 '空白表隐藏

End Sub

PS:这两段代码的作用分别是在关闭工作簿的时候深度隐藏除了“空白”表之外的其他工作表和打开工作簿的时候(启用宏)显示被深度隐藏的工作表(如果不启用宏这些被深度隐藏的工作表将无法显示,无法被查看)

最终效果如下:

上面动画主要展示以下几点效果:

1、打开工作簿后,因为没有启用宏,所以只能看到表名为“空白”的工作表,其他表均无法看到;

2、启用宏后,被深度隐藏的表1和表2都取消了隐藏可以查看了,表名为“空白”的工作表被深度隐藏;

3、关闭工作簿时,表名为“空白”的工作表被取消隐藏,其他工作表被深度隐藏(防止下次被打开的时候不启用宏也能看到内容)

PS:这里的深度隐藏是指在VBE编辑器里面控制的工作表的显示/隐藏属性,不是指一般的工作表隐藏,所以要取消隐藏必须要通过VBE编辑器。

知识拓展:

我们可以通过宏代码控制工作表的显示和隐藏,可是如果代码被别人修改了,那岂不是不起作用了吗?所以我们可以给工作簿的VBE编辑器设置工程密码,避免代码被随意修改。

(0)

相关推荐

  • VBA代码库11:强制用户启用宏(续)

    excelperfect 在<VBA代码库10:强制用户启用宏>中,讲解了一段用户在打开工作簿时必须启用宏才能使用工作簿功能的代码.本文给出另一段同样可以实现强制用户启用宏的代码. 如果用 ...

  • 运行VBA代码的四种常用方法

    每天一篇Excel技术图文 微信公众号:Excel星球 NO.660-走你!VBA 作者:看见星光  微博:EXCELers / 知识星球:Excel HI,大家好,我是星光. 前面三期分别给大家聊了 ...

  • Excel教程:深度隐藏工作表和隔列求和公式

    绿色按钮收听Excel课程  今晚8点开课 主讲/滴答老师 - 咨询QQ:800094815 1 Excel隔列求和  先来个偷懒取巧的公式,B1.D1.F1等隔列求和,但是奇数列都是文本,我们完全可 ...

  • Excel小教程六:冒充一次高手,深度隐藏工作表!

    为何要隐藏工作表? 先说,为何需要隐藏EXCEL工作表?譬如,咱们机构经常做题库,试题和答案分别在不同的工作表,其中的标准答案这个工作表就需要隐藏起来. 怎么隐藏工作表? 普通隐藏方法:执行" ...

  • Excel VBA入门教程,禁用宏就隐藏工作表,双保险防数据泄露

    Excel VBA入门教程,禁用宏就隐藏工作表,双保险防数据泄露

  • 隐藏工作表中的公式

    有时候,由于某些原因,我们不希望他人看到工作表中的公式,这就需要将公式隐藏. 下面介绍两种方法. 方法1:使用工作表保护功能 如下图所示的工作表,第6行中是求和公式. 下面,我们隐藏这些公式. 第1步 ...

  • excel隐藏工作表界面只显示用户窗体的三种方法

    内容提要:本文介绍excel中通过VBA代码来隐藏工作簿只显示用户窗体的三种情况和方法. 有时候当我们打开excel,没有看到常规的显示工作表界面,而是只显示了用户窗体.这是怎么实现的呢?我们可以通过 ...

  • EXCEL强制启用宏的实现

    如果,EXCEL禁用了宏,那么,我们制作的很多功能就不能实现了.为此,必须要求启用宏. 首先,当然是在工作薄里添加一个名为"启用宏"的工作表,写上些内容,提示如何启用宏. 其次,在 ...

  • 【VBA实战系列】002-一键取消所有隐藏工作表

    今年我们来聊点简单的,但是很常见的问题 如何批量取消工作薄中,所有隐藏的工作表 目前Excel自带的功能,无法实现批量,只能逐个取消, 有兴趣的同学可以去WPS看看,听说可以 不过有很多MS OFFI ...

  • 一次取消多个隐藏工作表的两种方法(使用VBA和不用VBA)

    只要你隐藏过工作表,你就遇到过这种小麻烦:当你想取消隐藏的工作表时,你只能从鼠标右键菜单中一个一个的选择隐藏.这次,我们介绍两个方法,可以一次性取消多个隐藏的工作表 在Excel中,一次隐藏多个工作表 ...

  • Excel技巧连载15和16:Excel批量取消隐藏工作表的两个技巧

    一直以来有点遗憾,就是Excel没有添加"批量取消隐藏工作表"的功能.以至于取消多个隐藏的工作表,我们不得不耐着性子一个一个去手工操作:右键单击任意工作表标签,右键菜单中,选择[取 ...