-1

我正在将数据验证规则应用于我的数据,并且我想完成以下操作:

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

4

1 回答 1

1

这是一种VBA方式。

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

简而言之,如果将 A 列中的单元格更改为Not a product ownerthenn/a将添加到 B 列中,并且该单元格被锁定以进行编辑。如果有其他情况,则会添加数据验证列表并解锁单元格。

请注意,这种方法需要对工作表进行密码保护。

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
于 2013-03-08T10:51:20.023 回答