限定Excel工作表可用编辑范围的几种方法
一、设置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 |
三、利用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