具有COUNTIF Like条件的Excel VBA连接函数

时间:2017-07-04 21:23:29

标签: excel vba excel-vba

此引用的副本要求公式。该人明确表示没有VBA。

我正在寻找一个像内置CONCATENATE()函数一样执行连接的函数,但条件如COUNTIF()

我正在寻找一个简单的VBA功能。其他答案是复杂的公式。

这样的事情是否存在?

这个问题已经创建,并且在搜索中很容易找到。这个想法是为了帮助其他人阅读许多其他问题和答案,而不是找到他们需要的答案。

1 个答案:

答案 0 :(得分:0)

这是一个名为ConcatenateIF()的VBA函数,它与COUNTIF()的工作方式类似。

Function ConcatenateIf(CriteriaRange As Range, Condition As Variant, _
        ConcatenateRange As Range, Optional Separator As String = ",") As Variant
    Dim i As Long
    Dim strResult As String
    On Error GoTo ErrHandler
    If CriteriaRange.Count <> ConcatenateRange.Count Then
        ConcatenateIf = CVErr(xlErrRef)
        Exit Function
    End If
    For i = 1 To CriteriaRange.Count
        If CriteriaRange.Cells(i).Value = Condition Then
            strResult = strResult & Separator & ConcatenateRange.Cells(i).Value
        End If
    Next i
    If strResult <> "" Then
        strResult = Mid(strResult, Len(Separator) + 1)
    End If
    ConcatenateIf = strResult
    Exit Function
ErrHandler:
    ConcatenateIf = CVErr(xlErrValue)
End Function

http://www.eileenslounge.com/viewtopic.php?f=27&t=12298