Я стремлюсь достичь следующего:

Столбец H имеет 5 потенциальных входных данных из списка проверки данных:

Pass, High, Medium, Low & N/A

Если столбец H имеет High , Medium или Low , мне нужен столбец I, чтобы немедленно запросить комментарий в виде диалогового окна.

Как я могу настроить это?

Также может быть полезно добавить, что я ничего не знаю о написании сценариев / кодов, и при этом я не понимаю какого-либо "жаргона Excel", я довольно простой пользователь, и все, что я знаю, самоучка, используя метод проб и ошибок!

1 ответ1

0

Исходя из моего понимания вашего вопроса, я предлагаю решение 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.

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