在我们的日常工作中,一个工作簿里面往往都有多个工作表,每个工作表有不同的内容。

朋友们,你们在工作中,有没有遇到这种情况呢:

有的工作表里有一些敏感信息,不想让其他人看见;

或者是,只想让其他人看见特定的工作表;

又或是,怕别人不小心修改了数据,所以只想显示最终结果表,隐藏原始数据表;

又或是,想让不同的部门不同的人,看不同的工资表。

以上问题,如何在Excel实现呢?其实很简单,用VBA里的Workbook_Open事件即可实现。下面,我们来看看代码吧。加粗部门为代码,绿色部分为注解。

假设有四个工作表:

1. frontpage, 主页. 没有敏感信息,所有人都可以看。

2. zb, 总表。 输入密码1, 才可以看。

3. jbxs, 基本信息。输入密码2,才可以看。

4. gongzi, 工资。输入米面3,才可以看。

Private Sub Workbook_Open()

'初始化。 在输入密码之前,先把除了主页的所有工资表隐藏。不然的话,默认的第一个工资表会显示出来。

Sheets("zb").Visible = False

Sheets("jbxs").Visible = False

Sheets("gongzi").Visible = False

'密码提示框, 用的是VBA里最常用的信息交互语句 InputBox. 这里只介绍最基本的功能,至于其他扩展功能,这里暂不做介绍,大家可以慢慢摸索。

mina = InputBox("请输入密码:")

'如果输入密码1, 就只显示总表

If mina = "1" Then

Sheets("zb").Visible = True

Sheets("jbxs").Visible = False

Sheets("gongzi").Visible = False

End If

'如果输入密码2, 就只显示基本信息工作表

If mina = "2" Then

Sheets("zb").Visible = False

Sheets("jbxs").Visible = True

Sheets("gongzi").Visible = False

End If

'如果输入密码3, 就只显示个工资工作表

If mina = "3" Then

Sheets("zb").Visible = False

Sheets("jbxs").Visible = False

Sheets("gongzi").Visible = True

End If

End Sub

看起来,是不是不难呢?其实就是用了,Workbook_Open打开工作簿事件,InputBox信息输入语句,If-Then-End If 判断语句, 和工作表的Visbile属性。

如何找Workbook_Open事件呢?点开发工具–>Visual Basic —>点击ThisWorkbook –>然后在右边的下拉框里现在Open事件。

我们来看看效果吧

如果输入密码4,可以显示所有工作表,应该怎样做呢?大家在评论区,发表一下几件吧。

相关推荐