Сообщить об ошибке, если значение на листе не соответствует значению на другом листе - PullRequest
0 голосов
/ 01 апреля 2020

Когда я вписываю значение в «Лист 3» (в любую ячейку на странице От B5 до OD70 и от B124 до OD300), мне нужно выдать ошибку (разрешить ввод имени, но, как его цвет, красный или что-то в этом роде) предупредить их), если оно не совпадает точно со значением в столбце «Лист 1».

Я пробовал некоторые операторы If с условным форматированием, но это кажется чрезвычайно трудным для такого количества ячеек.

Ответы [ 2 ]

0 голосов
/ 01 апреля 2020

Я бы go с обработчиком событий Worksheet, так как массивный CF имеет тенденцию мешать вычислению и поведению листа

Просто активируйте кодовую панель Sheet3 (щелкните правой кнопкой мыши на имени вкладки и выберите «Просмотр» Код ") и введите следующий код:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.CountLarge > 1 Then Exit Sub
    If Intersect(Target, Union(Range("B5:OD70"), Range("B124:OD300"))) Is Nothing Then Exit Sub

    If Target.Value <> Sheet1.Cells(Target.Row, 2).Value Then MsgBox "Attention" _
                                                                     & vbCrLf & vbCrLf & "The input value:" _
                                                                     & vbCrLf & vbTab & Target.Value _
                                                                     & vbCrLf & vbCrLf & "doesn't match the one in Sheet1 cell B" & Target.Row, vbCritical
End Sub
0 голосов
/ 01 апреля 2020

Не должно быть никаких проблем с применением CF. Выполните следующие действия.

  1. На Листе 3 выберите любую ячейку. Я выбрал C2.
  2. Вызов CF> Новое правило> "Использовать формулу, чтобы определить, какие ячейки форматировать
  3. Введите формулу =ISERROR(MATCH(C2,Sheet1!$A:$A,0)), где C2 - адрес выбранной ячейки чтобы применить CF к.
  4. Выберите необходимый формат (например, красная заливка) и нажмите OK.
  5. В меню CF ленты выберите Управление правилами ...
  6. В открывшемся диалоговом окне выберите только что настроенное правило. В поле Применимо к вы увидите =$C$2 (или адрес выбранной ячейки.
  7. Замените эту формулу на =$B$5:$OD$70,$B$124:$OD$300
  8. Нажмите OK, и формат будет применен.

Ячейки, которые не имеют точного соответствия на Листе 1! A: A будет выделен Если вы не хотите использовать формат, применяемый к пустым ячейкам, используйте приведенную ниже формулу вместо приведенной выше.

=AND(LEN(C2),ISERROR(MATCH(C2,Sheet1!$A:$A,0)))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...