假设有 3 种产品 A、B 和 C。客户可以选择任意一种,他们只需输入“是”即可。
问题:我希望在产品 A 中输入“是”,这将导致产品 B 和 C 显示“否”。同样,如果客户选择产品 B,则 A 和 C 将显示“否”。
请帮助我解决这个问题。需要您的宝贵建议。
答案1
假设A1:A3是产品标题,B1:B3是用户选择。
将以下代码放入工作表模块:
Private Sub Worksheet_Change(ByVal Target As Range)
Static busy As Boolean
Dim r As Range, r1 As Range, r0 As Range
If busy Then Exit Sub
Set r0 = Range("B1:B3") ' User selection range
busy = True
Set r = Application.Intersect(Target, r0)
If r Is Nothing Then
busy = False
Exit Sub
Else
For Each r1 In r
If r1.Value = "yes" Then
r0.Value = "no"
r1.Value = "yes"
Exit For
Else
r1.Value = "no"
End If
Next
busy = False
End If
End Sub
请记住 - 当将范围复制粘贴到用户选择范围时,最上面的“是”将被接受,而其他所有值将被忽略。如果有“是”值,则所有其他值都将替换为“否”。
也许在某些特殊情况下存在一些错误会导致错误的结果 - 对其进行调试。
当然,任何文字都可以被编辑或用存储适当值的变量替换。