在Excel工作簿文件中,我们经常需要隐藏一些数据不让别人看到,本文简单聊一下工作表的隐藏。
先明确一下概念:Excel工作簿(workbook)和工作表(worksheet),可以简单的理解为一个Excel文件是一个工作簿,里面的各个sheet为工作表(但工作簿中并不是只有工作表!!)。
打开一个新的工作簿,默认配置会包含三个工作表:
如上图中的Sheet1~Sheet3就是三张工作表。
右键工作表名,在弹窗中选择“插入”,可以看到:
除了可以插入工作表外,还可以插入图表、MS Excel4.0宏表、MS Excel5.0对话框。当然这三种结构我们几乎用不到,所以大家知道有这些结构即可。
对工作簿和工作表有了基本了解后,我们进入本文主题:
1. 工作表的隐藏与显示
首先,我们查看一下worksheet的visible属性:
有三种方法可以打开VBA界面:
1、右键工作表名(比如Sheet1),在弹窗中选择“查看代码”,打开VBA界面。
2、按快捷键Alt+F11,打开VBA界面。
3、在开发工具选项卡中点击Visual Basic按钮,打开VBA界面。
若没有开发工具选项,则先调出来:文件→选项→自定义功能区→勾选开发工具。
在VBA界面中,随意单击选中一个工作表,如下图:
,
在Visible中可以看到三个属性:
-1 - xlSheetVisible:显示
-0 - xlSheetHidden:隐藏(但是可以右键工作表名来取消隐藏)
-2 - xlSheetVeryHidden :隐藏(不可以右键工作表名来取消隐藏)
下面是将Sheet1的Visible属性分别设置为-0 - xlSheetHidden和-2 - xlSheetVeryHidden的效果:
2. 加密隐藏
上面的方法可以普通隐藏工作表,也可以增加使用-2 - xlSheetVeryHidden隐藏的更深一些,但是还是可以通过更改Visible属性来取消隐藏。
我们可以使用“保护工作簿”的功能来加密隐藏工作表。
先隐藏一个工作表,然后在“审阅”选项卡中选择“保护工作簿”,弹出窗口中保持默认,输入自定义密码即可。
然后再看下图:“取消隐藏”按钮已经是灰色不可用了。若在VBA界面更改Visible属性,则会弹出错误提示。
(但是我们可以看到有个Sheet1的工作表是存在的!!!从这里可以判断是否有隐藏的工作表)
3. VBA批量取消隐藏工作表
在没有加密隐藏的情况下,不管是-0 - xlSheetHidden或者-2 - xlSheetVeryHidden ,都可以使用VBA一次性的全部取消隐藏。
(提一下:加密隐藏也可以破解VBA加密,来取消隐藏,不在本文内容范围内)
Sub shtvisible()
Dim sht As Worksheet
For Each sht In Worksheets
sht.Visible = xlSheetVisible
Next
End Sub
注意VBA不区分大小写,不强制缩进,但个人建议要命名规范,缩进保持结构清晰,可以使用插件来自动缩进,详见我的博文:VBA_01_插件工具。
以上,感谢你长得这么好看还关注我的博客,也请各位多多指教,有疑问欢迎留言沟通,谢谢~