关于excel:如何通过按钮隐藏和取消隐藏工作表?

How to hide and unhide sheets with the push of a button?

我有一个Excel工作簿,其中包含三张纸上的信息。

成功按下受密码保护的按钮(称为"管理员")的人员应该可以看到工作表2(称为Grund)。当再次按下该按钮时,它应改为隐藏工作表。此按钮位于工作表1(称为Hela)上。

通过密码保护按钮,可以以相同的方式隐藏和取消隐藏第1页中某些列(BC:BI)上的信息。

我将按钮设置为使用调用功能来启动宏。
我设法使列按预期进行隐藏和取消隐藏(请参见下面的代码),但是我找不到与列相同的隐藏和取消隐藏工作表的方法。

在工作表下面的代码中,该工作表受到保护,因此我尝试解决该问题,并且需要使用与我想像相同的方式来设置工作表的宏。

我尝试了" xlhidden"和" .hidden = not"的不同变体以及不同的" if"," ifs"等。

这是隐藏和取消隐藏列的宏

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Sub hideunhidecol()
Dim pwd As String

pwd ="admin"
'
ActiveSheet.Unprotect Password:=pwd 'unprotect the sheet'

Columns("BC:BI").Hidden = Not Columns("BC:BI").Hidden

With ActiveSheet
    .Protect Password:=pwd, DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True
    .EnableSelection = xlNoRestrictions
    'protect the sheet'
End With
End Sub


要切换给定图纸的可见性,可以使用:

1
Worksheets("Grund").Visible = Not Worksheets("Grund").Visible

但是请记住,就像@Josh Eller所说的那样,这并没有提供任何真正的保护。