|
发表于 2012-9-20 14:01
|
显示全部楼层
本楼为最佳答案
9910343 发表于 2012-9-20 13:47
能否写个代码,谢谢
登陆按钮中添加一个判断代码,
登陆名是 管理员,则执行 模块1.Set_ToolMenu,
否则执行 模块1.Set_ToolMenu2
- Private Sub CommandButton1_Click()
- On Error GoTo 10 '当姓名与密码不对应时,会出现错误,转到10语句处理
- Dim n As String
- Set sh = Sheets("设置")
- na = ComboBox1.Text: ps = TextBox1.Text '取得登录窗口中的姓名与密码
- If na = "" Or ps = "" Then MsgBox "未输入用户名或密码,不能登录", , "提示": Exit Sub
- s = WorksheetFunction.Match(na, sh.[a:a], 0) '查找用户在A列的位置
- n = sh.Cells(s, 2) '取出"设置"表中的权限密码,字符型
- If n <> ps Then GoTo 10
- Call 隐藏表
- '检查一下"设置"表的C列及右边各格中的内容,有内容的,说明可以打开内容所指定的工作表
- For I = 4 To 255
- b = sh.Cells(s, I).Value
- If b = 1 And sh.Cells(1, I) <> "" Then '单元格为1时,表示有权限打开这个表,就让它显示出来
- Sheets(sh.Cells(1, I).Value).Visible = -1
- End If
- Next
- '================================
- If na = "管理员" Then
- 模块1.Set_ToolMenu
- Else
- 模块1.Set_ToolMenu2
- End If
- '================================
- Unload UserForm1 '退出窗体
- Exit Sub
- 10:
- MsgBox "姓名或密码错误,不能登录", , "提示"
- End Sub
复制代码 在模块1中添加一个过程 Set_ToolMenu2
- Sub Set_ToolMenu()
- Dim mCaidan As Menu
- MenuBars(xlWorksheet).Reset
- Set mCaidan = MenuBars(xlWorksheet).Menus.Add("【数据查询系统】")
- With mCaidan.MenuItems
- .Add "命令一", "命令"
- .Add "命令二", "命令"
- .Add "-"
- .Add "命令三", "命令"
- .Add "命令四", "命令"
- End With
- End Sub
- Sub Set_ToolMenu2()
- Dim mCaidan As Menu
- MenuBars(xlWorksheet).Reset
- Set mCaidan = MenuBars(xlWorksheet).Menus.Add("【数据查询系统】")
- With mCaidan.MenuItems
- .Add "命令一", "命令"
- .Add "-"
- .Add "命令三", "命令"
- End With
- End Sub
- Sub 命令()
- MsgBox "这是个示范"
- End Sub
复制代码 这是相对比较的简单直接的方法,也可以在 Set_ToolMenu 中设置参数,直接通过参数来判断,就可以少一个过程!
|
|