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所说的那样,这并没有提供任何真正的保护。