我的问题如下所述。
我有两个选项的下拉列表:X
和Y
(表编号1)。
当我在表号1中选择X
时,用户不应该选择表号2中列出的列表流程名称。
当我在表号1中选择Y
时,用户无法从表格中显示的process1 type
,process2 type
,process3 type
列表中进行选择3号(OPT1应与支持表中的A
- E
- K
相对应。
以灰色突出显示的那些单元格应该是不可编辑的。其余部分应该可以自由修改。
以下是示例file。
我想在没有VBA的情况下解决它(如果可能的话)。
答案 0 :(得分:0)
如果您对仅仅格式化(而不是锁定单元格)感到满意,可以使用标准条件格式在没有VBA的情况下完成:
e.g。选择单元格B5,单击条件格式/新规则/使用公式确定要格式化的单元格。对于公式,请输入=$B$3="Y"
并选择您要应用的格式。
重复其他细胞的变异。
如果要锁定单元格以停止用户编辑,则必须使用VBA。将以下代码放在工作表代码区域中。请注意,您必须右键单击/格式化单元格/保护/锁定才能解锁输入单元格,以便更改此内容。
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("B3") = "X" Then
ActiveSheet.Unprotect
Range("B4").Locked = True
Range("B4").Interior.Color = RGB(128, 128, 128) 'no such thing as vbgGray
Range("B5").Locked = False
Range("B5").Interior.Color = vbYellow
Range("B6").Locked = False
Range("B6").Interior.Color = vbYellow
Range("B7").Locked = False
Range("B7").Interior.Color = vbYellow
ActiveSheet.Protect
ElseIf Range("B3") = "Y" Then
ActiveSheet.Unprotect
Range("B4").Locked = False
Range("B4").Interior.Color = vbYellow
Range("B5").Locked = True
Range("B5").Interior.Color = RGB(128, 128, 128)
Range("B6").Locked = True
Range("B6").Interior.Color = RGB(128, 128, 128)
Range("B7").Locked = True
Range("B7").Interior.Color = RGB(128, 128, 128)
ActiveSheet.Protect
End If
End Sub