是否可以在Excel中制作一个VBA宏,通过按下按钮即可隐藏和取消隐藏工作表?

问题描述 投票:0回答:1

我是VBA的新手。所以我很抱歉这个问题不重要。

我正在尝试制作一个包含3页信息的excel WB。

Sheet 2(称为Grund)对于成功按下受密码保护的按钮(称为“ Admin”)的人员不应该看到。当再次按下该按钮时,它应改为隐藏工作表。此按钮位于工作表1(称为Hela)上]

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

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

正如您将在工作表下面的代码中看到的那样,受保护的工作表受到保护,因此我尝试解决此问题,并且需要使用宏来设置工作表,就像我想的那样。有解决我问题的简便方法吗?请帮助

/ Peter

我尝试了“ xlhidden”和“ .hidden = not”的不同变体,不同的“ if”,“ ifs”等。没有很大的成功。

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

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
excel vba
1个回答
0
投票

要切换给定工作表的可见性,可以使用:

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

但是请记住,正如@Josh Eller所说,这丝毫没有提供任何真正的保护

© www.soinside.com 2019 - 2024. All rights reserved.