根据其他细胞的内容允许细胞群

时间:2013-03-08 08:15:11

标签: excel validation

我正在将数据验证规则应用于我的数据,我想完成以下任务:

如果另一个单元格填充了值X,则将值Y设置为单元格。 例如,如果在一个单元格中我有Not a Product Owner,我希望下一个单元格设置为N/A并且不可用于编辑。如果第一个单元格包含的值不同于Not a Product Owner,则下一个单元格应该可用于编辑(根据我设置的验证规则允许值)。

1 个答案:

答案 0 :(得分:1)

这是VBA的一种做法。

您需要将此代码放在工作簿相关表单中的Worksheet_Change事件模块中。

简而言之,如果A列中的单元格更改为Not a product owner,则在B列中添加n/a,并锁定单元格进行编辑。如果有的话,添加数据验证列表并解锁单元格。

请注意,此方法要求工作表受密码保护。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Options As String
    Options = "1. Choice1, 2. Choice2, 3. Choice3" //Change this options

    ActiveSheet.Unprotect Password:="Your Password"
    Application.EnableEvents = False

    If Not Intersect(Range("A:A"), Target) Is Nothing Then
        If Target = "Not a product owner" Then
            Target.Offset(0, 1).Validation.Delete
            Target.Offset(0, 1) = "n/a"
            Target.Offset(0, 1).Locked = True
        Else
            Target.Offset(0, 1).Locked = False
            Target.Offset(0, 1).Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=Options
        End If
    End If

    Application.EnableEvents = True
    ActiveSheet.Protect Password:="Your Password"
End Sub