Исходя из моего понимания вашего вопроса, я предлагаю решение VBA.
В этом примере выборочный диапазон столбцов равен H2:H7, и для этого диапазона уже запланирована валидация.
На рабочем листе нажмите ALT + F11, чтобы получить доступ к VBA Editor. Под левой панелью см. Объекты Microsoft Excel. Под этим двойным щелчком по намеченному рабочему листу откроется окно программирования Even Driven. В первом раскрывающемся списке выберите «Рабочий лист», затем во втором раскрывающемся списке выберите «Изменить». Это событие изменения рабочего листа. Следующие строки будут отображаться в редакторе кода.
Private Sub Worksheet_Change(ByVal Target As Range)
End Sub
Поместите следующий код между этими двумя строками.
If Target.Rows.Count > 1 Or Target.Columns.Count > 1 Then
Exit Sub
End If
Dim com As String
Dim comm1 As String
'Specify the range below. Set single column range else the code will error out
Set isect = Application.Intersect(Target, Range("H2:H7"))
If isect Is Nothing Then
Else
If Target.Value = "High" Or Target.Value = "Medium" Or Target.Value = "Low" Then
com = "Enter comment in " & Target.Offset(0, 1).Address(RowAbsolute:=False, columnabsolute:=False)
Do While comm1 = ""
comm1 = Application.InputBox(prompt:=com, Type:=2)
On Error GoTo myloop
If comm1 = False Then
comm1 = ""
End If
myloop:
On Error GoTo -1
Loop
Target.Offset(0, 1).Value = comm1
Else
Target.Offset(0, 1).Value = "" 'Remove this line if not desired
End If
End If
Сохраните файл как Macro Enabled Excel.
Вернуться на рабочий лист. Протестируйте этот код, выбрав предполагаемые значения в окне списка проверки и посмотрите, работает ли он для вас и соответствует ли ваш запрос. Этот код может не иметь расширенной проверки ошибок, хотя.
Одна небольшая вещь, которую я добавил, позже, если вы измените статус на Пропустить, комментарий будет удален из столбца I.