VBA代码隐藏单元格值使用button

我目前使用的VBA代码是:

Sub PasswordPointage() Dim Password As String Do Until Password = "123" Password = InputBox("plz enter password","Password","") If Password = "" Then Exit Sub End If Loop Columns ("A:B").EntieColumn.Hidden = False End Sub 

但问题是我无法保护我的纸张并使其工作,因为我无法隐藏/取消隐藏受保护纸张上的列

有没有任何代码只隐藏/取消隐藏单元格值 也可以用白色给数值着色,按下button使其变黑

掩蔽:

select一个有密码的列。 将列的格式更改为;;;** 格式列

密码将显示为******empty spaces (如果密码只有数字)

白色着色:

select具有密码的列,将字体颜色更改为“ white ”(或与单元格背景同步的颜色)

不要select列:

您可以通过不允许用户select该特定列来制作一个窍门

 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Column = 3 Then Target.Offset(0, -1).Select End Sub 

以上几行呢?

当用户select第column 3的单元格时,用户select将更改为第column 2

通过button隐藏/显示列

创build两个button/形状并点击即可分配macros,如下所示:

 Sub RoundedRectangle2_Click() Worksheets("Sheet1").Columns("B").Hidden = True End Sub 

 Sub RoundedRectangle1_Click() Worksheets("Sheet1").Columns("B").Hidden = False End Sub 

通过点击按钮显示和隐藏列

现在,如果要保护表单,则应启用format column 。 (如Mrig解释)

但问题是我无法保护我的纸张并使其工作,因为我无法隐藏/取消隐藏受保护纸张上的列

您可以。 最简单的方法是使用UserInterfaceOnly:=True保护工作表

 Sheet1.Protect Password:="abc", UserInterfaceOnly:=True 

现在,您可以隐藏/取消隐藏受保护表格中的列

 Sheet1.Columns(3).EntireColumn.Hidden = True 

select保护页时,请按照下图所示select格式栏

在这里输入图像说明

否则你可以写:

 Sheet1.Protect Password:="your_password", AllowFormattingColumns:=True 

然后运行你的代码,隐藏/取消隐藏应该现在工作。