我正在尝试创建一些代码来在另一个单元格更改时重置一个单元格。有三个下拉单元格,每个单元格都依赖于它之前的单元格(B3 依赖于 B2,B4 依赖于 B3 和 B2)。
因此,如果有人设置 B4,然后更改 B2,则会出现无效组合。所以,如果上面的单元格值被改变,它会强制下面的单元格为默认值(如果B1为值2时B4只能为值3,那么如果将B1更改为值1,则B4被强制为值1)
我现在使用的代码是这样的:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Target.Worksheet.Range("B2")) Is Nothing Then
If Sheet("Talent Sheet").Range("B2") = Human Then
Sheet("Talent Sheet").Range("B3") = Warrior
Sheet("Talent Sheet").Range("B4") = "Human Noble"
Else
If Sheet("Talent Sheet").Range("B2") = Elf Then
Sheet("Talent Sheet").Range("B3") = Warrior
Sheet("Talent Sheet").Range("B4") = "City Elf"
Else
If Sheet("Talent Sheet").Range("B2") = Dwarf Then
Sheet("Talent Sheet").Range("B3") = Warrior
Sheet("Talent Sheet").Range("B4") = "Dwarf Commoner"
End If
End If
End If
这将在 B2 更改时强制 B3 和 B4 为其默认值,但我收到编译错误“未定义子或函数”
老实说,我不知道是什么原因造成的。M$ help 说这是因为 sub 过程拼写错误,但我复制了其中的一些代码,并根据很多来源进行了检查。