按用户名决定列的隐藏与显示

按用户名决定列的隐藏与显示


前几天,发一了个使用隐隐藏来做权限管理的例子,今天给出一个精简版的,供大家参考。

表格中录入以下数据

在这里插入图片描述
B1单元格利用有效性增加下拉列表,为用户名,B2单元格为待输入的密码。
EFG三列为配置的基础数据,输入密码正确后,隐藏列中的几列就会隐藏。
B5单元格取出了电脑用户名,有兴趣的人可以按此用户名为直接确定B1单元格的用户。

确定按钮代码如下

Sub 确定()
Dim cols() As String
    ActiveSheet.Unprotect
If Range("B1") = "" Then Range("A:Z").EntireColumn.Hidden = False: Exit Sub '用户为空时,显示全部列
If Range("B2") = Range("E:E").Find(Range("B1")).Offset(0, 1) Then
    cols = Split(Range("E:E").Find(Range("B1")).Offset(0, 2), ",") '取得需要隐藏的列
    For i = 0 To UBound(cols)
    Columns(cols(i)).EntireColumn.Hidden = True '逐列进行隐藏
    Next
    Range("B1:B2") = ""
Else
    MsgBox "密码错误!"
End If
Range("B5") = Environ("username") '自动取电脑用户名
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

——专注办公软件的二次开发及培训,你有问题,我有思路!
——微博、微信、CSDN同号:w_dexu
——转载请注明出处!

微信二维码扫码加微信

猜你喜欢

转载自blog.csdn.net/w_dexu/article/details/107757997