excel如何设置只能编辑指定区域 (excel如何保护部分区域不能编辑)

在Excel表格中,有一个特别的功能,就是可以把不想编辑的内容进行锁定,然后把可以编辑的单元格设置为活动状态。

这个功能在一些操作当中很有用,特别是为使一些固定格式或者内容不想被误操作修改的时候。

那么如何应用vba代码来设置可编辑区域呢?

下面用一个例子来讲解一下关于单元格区域可编辑状态设置和修改、删除等一些基本操作。

excel对选定区域进行限制编辑,excel表格中特定区域设定编辑密码

AllowEditRange

想要实现这个功能,需要用到一个对象:AllowEditRange

此对象包含三个方法:

ChangePassword‘修改保护密码

Delete'删除对象

Unprotect'解除保护

excel对选定区域进行限制编辑,excel表格中特定区域设定编辑密码

举例

例子中,我们将用到这三个方法,分别对单元格区域进行设置操作。

分别做了五个按钮,设置可编辑区域、修改密码、删除编辑区域、设置表保护、取消表保护

excel对选定区域进行限制编辑,excel表格中特定区域设定编辑密码

整个操作过程中,实现了对表内任意选择单元格进行可编辑设置,取消和删除功能。

例如,当我们需要对姓名一列进行可编辑设置的时候,就选择姓名列单元格,然后单击"设置可编辑区域"按钮,输入一个密码,这个密码是当你对姓名进行输入的时候,需要密认证,确认密码正确才可以进行编辑。

如此,就可以防止没有权限的人修改工作表内容。

同时,也可以设置部门、职位等其它项为可编辑区域。

也可以设置不同的密码,那么这样的就对不同信息条目进行了分别管理,只有相应权限的操作人员,才可以对表格进行修改录入操作。

excel对选定区域进行限制编辑,excel表格中特定区域设定编辑密码

代码

其代码运用并不多,所以学习起来,也不是十分困难,掌握基本一些的功能就能实现。

Private Sub ChangePassWord()
    '修改密码
    Dim w As Worksheet
    Dim Ps As String
    Set w = Application.ActiveSheet
    Ps = InputBox("输入密码", "密码", "")
    If VBA.Len(Ps) = 0 Then Exit Sub
    'Add添加一个可编辑区域
		'Title区域名称
		'Range 区域地址范围
		'Password 密码
w.Protection.AllowEditRanges.Add _
    Title:="EditRange" & w.Protection.AllowEditRanges.Count, _
    Range:=Selection, _
    Password:=Ps
        With Selection
            .Interior.Color = RGB(152, 59, 50)
            .Borders.LineStyle = 1
        End With
End Sub

注意:代码中这个对象并不是我们开始介绍的AllowEditRange对象,而是AllowEditRanges对象。

是一个AllowEditRange对象集合,它里面包含了多个可编辑区域对象的集合,也就是说它是多个AllowEditRange对象的集合。

通过下面的例子就明白了。

删除可编辑区域

Private Sub DelAllowEditRanges()
 Dim sR As AllowEditRange'定义对象
 For Each sR In Activesheet.Protection.AllowEditRanges
'遍历集合中的对象
    With sR
        .Range.ClearFormats'清除单元格格式
        .Delete'分别删除可编辑区域对象
    End With
 Next sR
End Sub

上面这个过程将删除所有当前工作表中的可编辑区域,并清除格式。

当然了,这段代码并不会对表格内容清除。

如果要清除内容在With里面添加.Range.Clear即可。

欢迎关注、收藏