如何根据excel中的下拉选择锁定行中的特定单元格

时间:2012-07-30 02:32:51

标签: excel excel-vba conditional-formatting validation vba

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

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

细胞截图:

enter image description here

1 个答案:

答案 0 :(得分:0)

您可以使用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