【问题标题】:How do I lock specific cells within a row based on drop down selection in excel如何根据excel中的下拉选择锁定一行中的特定单元格
【发布时间】:2012-07-30 02:32:50
【问题描述】:

我已设置条件格式,因此特定选项具有独特的颜色,我现在想创建一个宏,以便基于颜色对应的单元格是可编辑的,并且该下拉列表的行中的所有其他单元格都是只读的.

例如,A5 被选为“Toyota”,这意味着只有第五行中的 E5 可以编辑,因为 A5 中的格式与 E2 匹配。

单元格屏幕截图:

【问题讨论】:

    标签: excel conditional-formatting validation vba


    【解决方案1】:

    可以使用Change事件修改单元格的Locked属性,类似这样

    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim rw As Range, rHdr As Range, cl As Range
    
        Me.Unprotect
        If Target.Column = 1 Then
            Set rHdr = Me.UsedRange.Rows(1)
    
            For Each rw In Target.Rows
                If rw.Cells(1, 1) <> "" Then
                    For Each cl In rHdr.Cells
                        Me.Cells(rw.Row, cl.Column).Locked = Not (cl.Value Like rw.Cells(1, 1) & "*")
                    Next
                Else
                    rw.Locked = True
                End If
                rw.Cells(1, 1).Locked = False
            Next
        End If
        Me.Protect
    End Sub
    

    【讨论】:

    • UsedRange 从第一个使用的行开始,而不是 A1,因此在这种特殊情况下,UsedRange.Rows(2) 将是第 3 行...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    • 2020-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多