범위를 쉼표로 구분된 문자열로 변환
내게 이런 칼럼이 있다면,
Col1
abc
def
ghi
jkl
다음과 같은 문자열로 변환하려면 어떻게 해야 합니까?:
"abc,def,ghi,jkl"
사용할 수 있습니다.Join()
1차원 배열의 모든 요소를 구분 기호로 결합하는 함수입니다.
그Transpose()
함수는 아래에서 차원 배열을 구성하는 데 사용됩니다(이 접근 방식은 단일 열 또는 행에서 작동함).
Sub Main()
Dim arr
arr = Join(Application.Transpose(Range("A2:A5").Value), ",")
MsgBox arr
End Sub
또는 UDF로서
Public Function Merge(r As Range) As String
Merge = Join(Application.Transpose(r.Value), ",")
End Function
만약 더 무거운 기계가 필요하다면 아래 답변에 나와 있는 솔루션 중 하나를 사용하십시오.저는 수백만 개의 세포를 포함하는 범위에 대해 비슷한 도전을 했습니다.그런 경우에는JOIN
충돌로 이어질 수 있습니다.
여기에서 질문을 확인하십시오.Excel 범위를 VBA 문자열로 변환
위 링크에서 제공된 모든 접근 방식을 테스트했습니다.기능 기반 솔루션JOIN
성능이 느리거나 충돌로 이어질 수도 있습니다.
모든 셀을 통과하는 일반적인 루프는 보다 훨씬 빠릅니다.JOIN
기능.인정된 답변에서 따끔한 건축가는 훨씬 더 빠릅니다.문자열 작성기를 사용하면 수백만 개의 셀로 구성된 문자열이 몇 초 만에 작성됩니다.이것이 제가 최종적으로 도달한 해결책입니다.
이중-트랜스포스는 단일 행 값에 대해 문자열 조인을 수행하는 데 사용됩니다.@user2140173과 @brettdj에 감사드립니다!
debug.print join(Application.Transpose(Application.Transpose(Range("A1:G1").Value)),",")
Public Function COLSASLIST(Rng As Range) As String
Dim tempStr1 As String
tempStr1 = Replace(Replace(Join(Application.Transpose(Application.Transpose(Rng.Value)), ","), ",,", ""), ",,", ",")
If Right(tempStr1, 1) = "," Then tempStr1 = Left(tempStr1, Len(tempStr1) - 1)
COLSASLIST = tempStr1
End Function
Public Function ROWSASLIST(Rng As Range) As String
Dim tempStr1 As String
tempStr1 = Replace(Replace(Join(Application.Transpose(Rng.Value), ","), ",,", ","), ",,", ",")
If Right(tempStr1, 1) = "," Then tempStr1 = Left(tempStr1, Len(tempStr1) - 1)
ROWSASLIST = tempStr1
End Function
새 동적 워크시트 기능 사용TextJoin()
Microsoft 365/Excel 2019(+/-Mac) 및 Excel for Web의 경우 다음과 같은 범위 인수를 사용하여 감사를 작성할 수 있습니다.
- 종대 또는
- 한 줄 혹은 한 줄
- 연속 범위 입력(예: "A2:C5")
선택적인 두 번째 인수ExcludeBlanks
빈 값을 생략할 수 있습니다.
함수 결과는 쉼표로 구분된 목록입니다(경우에 중요).(3)
판독 순서는 행 단위)입니다.
Function Rng2List(rng As Range, Optional ExcludeBlanks As Boolean = True) As String
Rng2List = WorksheetFunction.TextJoin(",", ExcludeBlanks, rng)
End Function
텍스트 결합 기능의 도움말 참조
언급URL : https://stackoverflow.com/questions/22349945/convert-range-to-comma-delimited-string
'bestsource' 카테고리의 다른 글
기존 항목을 폴더로 덮어쓰려면 어떻게 해야 합니까?여기 PowerShell에서 복사하시겠습니까? (0) | 2023.08.27 |
---|---|
Android에서 단말기의 SMS 메시지를 프로그래밍 방식으로 읽는 방법은 무엇입니까? (0) | 2023.08.27 |
Python에서 빈 개체 만들기 (0) | 2023.08.22 |
매개 변수와 함께 또는 매개 변수 없이 사용할 수 있는 장식기를 만드는 방법은 무엇입니까? (0) | 2023.08.22 |
로컬 리포지토리를 원격 리포지토리에 연결 (0) | 2023.08.22 |