код VBA, который находится в нескольких ячейках и проверяет несколько диапазонов - PullRequest
0 голосов
/ 23 марта 2020

Может кто-нибудь помочь мне эту формулу в нескольких ячейках, проверяя несколько диапазонов! Есть ли способ для меня, чтобы преобразовать это в VBA, так что мне нужно выбрать только один диапазон в каждой ячейке?

Спасибо за помощь.

=IF(COUNTIF(BE95:BE99;"Falhou")>0;"Falhou";IF(COUNTIF(BE95:BE99;"Falhou Condicionamente")>0;"Falhou Condicionamente";IF(COUNTIF(BE95:BE99;"Passou Condicionamente")>0;"Passou Condicionamente";IF(COUNTIF(BE95:BE99;"Passou")>0;"Passou"))))

Ответы [ 2 ]

1 голос
/ 23 марта 2020

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

Затем просто введите следующие формулы:

= Test (BE95: BE99)

Function test(rng As Range)
Dim str As Variant
    For Each str In Array("Falhou", "Falhou Condicionamente", "Passou Condicionamente", "Passou")
        If Not IsError(Application.Match(str, rng, 0)) Then test = str:Exit for 'if match exist then return value
    Next str
End Function
0 голосов
/ 23 марта 2020

Функция, представленная ниже, имеет одну функцию, которой нет в функции вашего рабочего листа: она возвращает «Falhou», если диапазон не содержит ни одного из четырех критериев подсчета.

Function Passou(Rng As Range) As String

'    '=IF(COUNTIF(BE95:BE99;"Falhou")>0;"Falhou";
'    IF(COUNTIF(BE95:BE99;"Falhou Condicionamente")>0;"Falhou Condicionamente";
'    IF(COUNTIF(BE95:BE99;"Passou Condicionamente")>0;"Passou Condicionamente";
'    IF(COUNTIF(BE95:BE99;"Passou")>0;"Passou"))))

    Dim Sp() As String
    Dim i As Integer

    Sp = Split("Falhou,Falhou Condicionamente,Passou Condicionamente,Passou", ",")
    For i = UBound(Sp) To 1 Step -1
        If Application.CountIf(Rng, Sp(i)) Then Exit For
    Next i
    Passou = Sp(i)
End Function

Вызовите UDF из рабочего листа, указав диапазон для поиска.

= Passou($BE$95:$BE$99)

Абсолютная адресация диапазона позволяет копировать формулу по строкам и столбцам.

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