2016-06-06 3 views
0

나는 연결하려는 범위를 찾는 두 개의 수식이 있습니다.Excel 범위의 각 셀 연결

'[AM Track.xlsm]Raw Data'!$A$10` 

다른 식의 범위의 예컨대 엔드 셀 주소를 반환 한 공식은 예를 들어, 범위의 시작 셀의 주소를 반환

'[AM Track.xlsm]Raw Data'!$A$21` 

어떻게이 범위의 각 셀을 연결할 수 있습니까?

Option Explicit 
Function TEXTJOIN(delimiter As String, ignore_empty As String, ParamArray textn() As Variant) As String 
    Dim i As Long 
    For i = LBound(textn) To UBound(textn) - 1 
     If Len(textn(i)) = 0 Then 
      If Not ignore_empty = True Then 
       TEXTJOIN = TEXTJOIN & textn(i) & delimiter 
      End If 
     Else 
      TEXTJOIN = TEXTJOIN & textn(i) & delimiter 
     End If 
    Next 
    TEXTJOIN = TEXTJOIN & textn(UBound(textn)) 
End Function 
+0

저는 Excel 2016에서 그런 일을 할 수있는 새로운 기능이 있다고 생각합니다. @ 지프는 한 번 나에게 그것을 언급했다. 그러나 나는 그것을 발견 할 수 없었습니다. 아마 그/그녀는 당신에게 문제에 대한 해결책을 가지고있을 것입니다. – Ralph

+1

@ 랄프, 나는 [textjoin()] (https://support.office.com/en-us/article/TEXTJOIN-function-357b449a-ec91-49d0-80c3-0e8fc845691c)이 당신이 말하는 내용이라고 믿습니다. OP, Excel 2016이 없다면 VBA 함수/UDF가 필요합니다. – JNevill

+0

VBA 코드에 대한 제안 사항이 있으십니까? – Adavid02

답변

0

감사합니다 이것과 내장 된 Excel 2016 textjoin() 수식은 마지막 두 매개 변수가 범위의 시작과 끝이라는 것입니다 (textjoin과 같은 단일 범위 대신).

이것을 사용하려면 VBE (Alt + F11)로 이동하십시오. 통합 문서의 VBAProject에 새 모듈을 만듭니다. 그런 다음 이것을 붙여 넣으십시오.

1

엑셀 2016에서 모방 TextJoin 당신의 요구에 맞는 될 것이라고 빠른 VBA 루틴 :

Function textjoin(delimiter As String, ignoreEmpty As Boolean, startcell As Range, endcell As Range) As String 
    Dim rngCell As Range 

    For Each rngCell In Range(startcell, endcell).Cells 
     If (ignoreEmpty And rngCell.Value <> "") Or Not ignoreEmpty Then 
      If textjoin = "" Then textjoin = rngCell.Value Else textjoin = textjoin & delimiter & rngCell.Value 
     End If 
    Next rngCell 
End Function 

차이 나는이 발견 엑셀 2016 년 TextJoin에 대한 의견을

관련 문제