메뉴

RngConcat

Function

선택한 범위의 값을 구분자로 병합하는 VBA 사용자 지정 함수입니다.

RngConcat 코드 미리보기
구문 = RngConcat ( 범위, [구분자], [빈칸무시] )
인수구분 형식 설명
범위 필수 Range
병합할 텍스트가 입력된 범위입니다.
구분자 선택 String
텍스트를 병합할 구분자입니다. 기본값은 쉼표(,) 입니다.
빈칸무시 선택 Boolean
TRUE일 경우 빈칸을 무시하고 병합합니다. 기본값은 TRUE 입니다.

마스터 코드

복사한 코드는 VBA 편집기(Alt + F11) 새 모듈에 붙여넣어 사용하세요
Module1 · RngConcat
Function RngConcat(range As range, Optional delimiter As String = ",", Optional ignore_blank As Boolean = True)
'###############################################################
'오빠두엑셀 VBA 사용자지정함수 (https://www.oppadu.com)
'▶ RngConcat
'▶ 선택한 범위의 값을 구분자로 병합합니다.
'▶ 인수 설명
'_____________range : 병합할 범위입니다.
'_____________delimiter : 구분자입니다. 기본값은 쉼표(,)입니다.
'_____________ignore_blank : True일 경우, 빈칸을 무시하고 병합합니다. 기본값은 True 입니다.
'▶ 사용 예제
's = RngConcat(Range("A1:B1"))
'###############################################################
Dim r As range
Dim result As String
For Each r In range
If r.Value <> "" Then result = result & r.Value & delimiter
Next
If Len(result) > 0 Then result = Left(result, Len(result) - Len(delimiter))
RngConcat = result
End Function

활용 예제

범위 값을 쉼표로 합쳐 메시지 상자로 출력
Dim Rng As range
Set Rng = range("A1:C10")
MsgBox RngConcat(Rng)
띄어쓰기로 합쳐 D1 셀에 출력
Dim Rng As range
Set Rng = range("A1:C10")
range("D1").Value = RngConcat(Rng, " ")

안내사항

VBA 편집기가 아닌 일반 시트에서 사용할 경우에는 엑셀에서 기본 제공하는 TEXTJOIN 또는 CONCAT 함수를 사용하는 것이 더 편리합니다.
댓글 2
5 (1개 평가)
HSNA
HSNA 2022.11.22 12:39
안녕하세요. 해당 함수 사용중 중국어(간체)가 물음표로 깨지는 현상이 발생하는데, 어떻게 해결 가능할까요?
오빠두엑셀
오빠두엑셀 작성자 2022.11.26 16:36
안녕하세요.
간체가 깨지는 것은 사용하고 계신 윈도우/엑셀 언어체계가 호환되지 않아 그런것으로 보입니다.
우선 윈도우에 중국어언어가 설치되어 있는지 확인해보시고,
그래도 간체가 깨지신다면 윈도우의 로켈 언어를 중국어로 변경, 이후 엑셀의 사용 언어도 중국어로 변경 후 다시 엑셀을 실행해보세요.
그러면 문제없이 잘 실행될겁니다.^^
답변이 문제 해결에 도움이 되었길 바랍니다. 감사합니다.
스크랩 완료