怎样限定Excel工作表禁止别人修改

因工作需要,我们常常需要对工作表的某一范围设置访问权限,禁止别人改动该单元格区域的内容。这里向大家介绍实现这一目标的3种方法。

一、设置ScrollArea属性

如果要使工作表的A1:E10单元格区域不被改动(下同),可以采取限定垂直滚动条范围的办法,隐藏A1:E10单元格区域,从而达到限定使用范围的目的。具体步骤如下:

1、执行“视图→工具栏→控件工具箱”命令,在打开的“控件工具箱”工具栏中,单击“属性”按钮,显示如图一所示的“属性”对话框。

图1

2、在“属性”对话框的ScrollArea一栏里输入“A45:E45”(该范围可自己选定),然后按Enter键。

执行上述步骤后,我们发现A1:E10单元格区域不再出现在工作表中窗口中了,而且也无法移动垂直滚动条。因为ScrollArea属性不是永久的,关闭了文件,下次再打开时又可随意选择编辑上述区域。因此还需在ThisWorkbook代码模块中添加下面一段代码。

Private Sub Workbook_Open()

Worksheets("sheet1").ScrollArea = "A45:E45"

End Sub

这样,每次打开工作簿时,上述代码自动运行,并设定ScrollArea属性。作为保护工作表内容,这种方法是个不错的选择。

二、使用工作表保护

1、激活Sheet1表,选中允许填充数据的单元格区域,右击选择“设置单元格格式”,在“保护”选项卡中取消“锁定”复选项,单击“确定”按钮退出。然后依次单击菜单“工具→保护→保护工作表”,在弹出的对话框列表中,输入保护密码,勾选“选定未锁定的单元格”选项,其他选项全部清除(如图2所示),点击“确定”返回。

图2

2、保护工作表后,再按回车键或按方向键,光标则只能在原来取消锁定的单元格之间来回移动,而被锁定A1:E10单元格区域单元格则不能激活,从而达到了限制访问的目的。

三、利用VBA设置访问权限

我们也可以利用VBA代码,设置权限密码,当编辑Sheet1工作表A1:E10单元格区域时,自动弹出输入密码提示框,密码正确时,该单元格被激活,否则,单元格内容不能被改动。具体方法如下:

执行“工具→宏→Visul Basic编辑器”命令或按下Alt+F11组合键,在代码窗口左侧的“工程资源管理器”窗口中,双击Excel对象下的Sheet1工作表,在右侧的代码窗口中输入以下代码:

Private Sub Worksheet_Change(ByVal Target As Range)

X = Target

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Column <= 5 And Target.Row <= 10 Then

Y = InputBox("请输入密码:")

If Y <> 123 Then

MsgBox "密码错误,你无编辑权限!"

Range("A11").Select

End If

End If

End Sub

AI助手