Как проверить, содержится ли диапазон строк в столбце, содержится ли он в другом столбце другого листа?

Изменение из условного форматирования должно определяться из свойства DisplayFormat.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)  
    If ScanColor(Range("lockdown")) Then
        MsgBox "You have an invalid cell!"
    End If
End Sub

Private Function ScanColor(Cells As Range) As Boolean
    Dim cell As Range
    For Each cell In Cells
        If cell.displayformat.Interior.ColorIndex = 3 Then
            ScanColor = True
            Exit For
        End If
    Next
End Function

Возникает вопрос о том, будет ли запущен Worksheet_Change. Вместо этого вы можете использовать Worksheet_Calculate.

-2
задан Cindy Meister 18 January 2019 в 22:07
поделиться

1 ответ

У вас есть несколько вопросов. Однако я отвечу на это частично, сказав, что COUNTIF - недооцененный инструмент для ПРОВЕРКИ, если что-то существует или нет. Countif желателен, потому что он может проверять ячейки без ошибок, как это может делать VLookup или Match .

Пример для проверки, существует ли значение в диапазоне, можно написать так в Excel =OR(COUNTIF(E:E,"VNVININT2HAI")), который будет возвращать True, если любая ячейка имеет значение вашего текста.

Вы также можете использовать его для проверки наличия ячейки, используя * для сторон.

Пример: =OR(COUNTIF(E6,"*2*")) вернет True или False в зависимости от того, содержит ли ячейка «2» где-либо в ней.

Я сомневаюсь, что это полностью отвечает на ваш вопрос, но для людей, ищущих, как «проверить ячейки и диапазоны» COUNTIF , вероятно, более полезен, чем вы думаете. Это применимо и в VBA (иногда я предпочитаю его instr).

РЕДАКТИРОВАТЬ Это работает, но если у вас есть МНОГО ячеек для проверки, возможно, рассмотрите возможность использования IsNumber(Match(), как показано в комментариях @scottCraner

0
ответ дан PGCodeRider 18 January 2019 в 22:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: