vba 限制用户不能修改excel的内容

Select Case sgrade
Case "管理员"
Application.ActiveWindow.DisplayWorkbookTabs = 1
Worksheets("用户权限").Visible = 1
Worksheets("基础表1").Visible = 1
Worksheets("查询系统").Visible = 1
UserForm1.Hide
Application.WindowState = xlMaximized
Case "普通用户"
Application.ActiveWindow.DisplayWorkbookTabs = False
Worksheets("用户权限").Visible = False
Worksheets("基础表1").Visible = False
Worksheets("查询系统").Visible = 1
UserForm1.Hide
Application.WindowState = xlMaximized
End Select
End If
End If我现在的代码是这样、我想让普通用户登录上去只能看见查询系统这个表着实现了
我还想不让能够修改这个表怎么做?

替换成这个代码:Select Case sgrade
Case "管理员"
Application.ActiveWindow.DisplayWorkbookTabs = 1
Worksheets("用户权限").Visible = 1
Worksheets("基础表1").Visible = 1
Worksheets("查询系统").Visible = 1
ActiveSheet.Protect Password:="123", DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True, AllowFiltering:=True
UserForm1.Hide
Application.WindowState = xlMaximized
Case "普通用户"
Application.ActiveWindow.DisplayWorkbookTabs = False
Worksheets("用户权限").Visible = False
Worksheets("基础表1").Visible = False
Worksheets("查询系统").Visible = 1
ActiveSheet.Unprotect Password:="123"
UserForm1.Hide
Application.WindowState = xlMaximized
End Select
End If
End If 加粗的字为密码,可以自己设定,两个密码必须是一样的
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-11-02
  方法:
  Select Case sgrade
Case "管理员"
Application.ActiveWindow.DisplayWorkbookTabs = 1
Worksheets("用户权限").Visible = 1
Worksheets("基础表1").Visible = 1
Worksheets("查询系统").Visible = 1
UserForm1.Hide
Application.WindowState = xlMaximized
Case "普通用户"
Application.ActiveWindow.DisplayWorkbookTabs = False
Worksheets("用户权限").Visible = False
Worksheets("基础表1").Visible = False
Worksheets("查询系统").Visible = 1
UserForm1.Hide
Application.WindowState = xlMaximized
End Select
End If
End If
第2个回答  2013-04-10
在Application.WindowState = xlMaximized后加上

Dim bar As CommandBarControl
For Each bar In Application.CommandBars("Worksheet Menu Bar").Controls(6).Controls

If bar.Caption = "保护(&P)" Then bar.Enabled = False
Next
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFiltering:=True, AllowUsingPivotTables:=True

退出时加上如下代码。
Dim bar As CommandBarControl
For Each bar In Application.CommandBars("Worksheet Menu Bar").Controls(6).Controls
If bar.Caption = "保护(&P)" Then bar.Enabled = True
Next
ActiveSheet.Unprotect本回答被网友采纳
第3个回答  2013-04-10
工具→保护工作表,设置密码
第4个回答  2020-11-18
把不让修改的表“工具--保护--保护工作表”或“格式--工作表--隐藏”处理一下,估计可行。
相似回答