我正在将数据验证规则应用于我的数据,并且我想完成以下操作:
X
如果另一个单元格填充了 value ,则将value 设置为一个单元格Y
。例如,如果在一个单元格中我有Not a Product Owner
,我希望将下一个单元格设置为N/A
并且不可用于编辑。如果第一个单元格包含一个不同于 的值,Not a Product Owner
则下一个单元格应该可用于编辑(根据我设置的验证规则允许的值)。
我正在将数据验证规则应用于我的数据,并且我想完成以下操作:
X
如果另一个单元格填充了 value ,则将value 设置为一个单元格Y
。例如,如果在一个单元格中我有Not a Product Owner
,我希望将下一个单元格设置为N/A
并且不可用于编辑。如果第一个单元格包含一个不同于 的值,Not a Product Owner
则下一个单元格应该可用于编辑(根据我设置的验证规则允许的值)。
这是一种VBA方式。
您需要将此代码放入Worksheet_Change
工作簿相关工作表中的事件模块中。
简而言之,如果将 A 列中的单元格更改为Not a product owner
thenn/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