|
'---------------------------------------
' 사용자 정의 함수
'---------------------------------------
' 파일 첨부합니다.
' sDelimiter - 구분자
' rng - 범위, 여러 범위도 가능
' example
' =concat(",", B1:B9 )
' =concat(",", B1:B9, B12:B20 )
'여러 항목을 인수로 전달
' ParamArray rng() As Variant
' 예를 든다면 sum함수의 경우 인수를 여러 개 넣을 수 있듯이
Function concat(sDelimiter As String, ParamArray rng() As Variant) As String
Dim values As Variant
Dim sTemp As String
For r = 0 To UBound(rng)
' 범위를 배열로 변환 rng(r).Value
' 2차원 배열을 1차원 배열로 변환 Transpose
values = Application.Transpose(rng(r).Value)
' 배열을 구분자를 사이에 끼고 문자열로 변환
' VBA.Join(values, sDelimiter)
' 이전 데이타와 결합'
' sTemp & IIf(r = 0, "", sDelimiter) &
sTemp = sTemp & IIf(r = 0, "", sDelimiter) & VBA.Join(values, sDelimiter)
Next r
concat = sTemp
End Function
|
|