Я сказал, 3 продукта A, B и C. Клиент может выбрать любого, и они должны просто напечатать "да".

Проблема: Я хочу ввести "да" в продукте A, что приведет к "нет" для продуктов B и C. Аналогично, если клиент выберет продукт B, то A и C покажут "нет".

Пожалуйста, помогите мне с этим вопросом. Нужны ваши ценные предложения.

1 ответ1

0

Предположим, 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

Помните - при вставке диапазона в диапазон выбора пользователя самое верхнее "да" принимается, а все остальные игнорируются. Если есть значение "да", все другие значения заменяются на "нет".

Возможно, некоторые ошибки вызвали неправильный результат, в некоторых особых случаях существует - отладить их.

Конечно, любые литералы могут быть отредактированы или заменены переменными, хранящими правильные значения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .