`
阅: 482 | 回: 1
发表于2023/7/16 18:44:39 楼主 
头像 等级:初学者
积分:0
财富值:2.0
身份:普通用户

我想实现的功能是:

选中某一单元格或区域,点右键“锁定”,然后选中部分就被锁定了(可以标示背景色以区分被锁定状态);

再次选中已被锁定的区域,点右键“解锁”,选中部分就被去锁定了。

我有一个加载宏,但是使用起来,还是不够方便。希望大侠们加以修改,以更加便于使用。

代码如下:

Sub lockadd()
    For Each myctl In Application.CommandBars("cell").Controls
        If myctl.ID = 888 Then Exit Sub
    Next
    With Application.CommandBars("cell").Controls.Add(ID:=888, before:=1)
        .Caption = "锁定单元格"
.BeginGroup = True
        .OnAction = "lockRange"
    End With
End Sub
Sub Allreset()
Application.CommandBars("cell").reset
End Sub
Sub unlockadd()
    For Each myctl In Application.CommandBars("cell").Controls
        If myctl.ID = 888 Then Exit Sub
    Next
    With Application.CommandBars("cell").Controls.Add(ID:=888, before:=1)
 
        .Caption = "解锁单元格"
        .BeginGroup = True
        .OnAction = "lockRange"
    End With
End Sub
Sub lockRange()
    On Error Resume Next
    ActiveSheet.Unprotect
    Dim myrange As Range
    Set myrange = Selection
    If myrange.Locked Then
        myrange.Locked = False
        myrange.Interior.ColorIndex = xlNone
    Else
        myrange.Locked = True
        myrange.Interior.ColorIndex = 20
    End If
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

End Sub

我的个性签名
发表于 2023/7/17 9:14:57   
头像 等级:传说级人物
积分:2356
财富值:3
身份:系统管理员
http://www.ffcell.com/Wo/index.aspx
方方格子安装教程http://www.ffcell.com/WenKu/article.aspx?id=376

快速回复

目前不允许游客发表,请 登录 注册 后再发贴。