rand(life)

[엑셀Q&A,VBA] 같은 조건의 문자열 찾아 합치기 4 본문

컴퓨터/엑셀

[엑셀Q&A,VBA] 같은 조건의 문자열 찾아 합치기 4

flogsta 2017. 4. 3. 21:49

이전에 쓴 글에 어느 분이 답글을 주셨습니다.

혹시 저 과목들을 몇개 단위로끊어서 쓸수 있을까요? 
예를 들면 5개 과목을 쓰면 줄을 바꾸거나 셀을 아래로 삽입하여 작성하는 게 가능할까요? 

그래서 만들어보았습니다.

Function ConcatText(ByVal 범위 As Range, 구분 As String) As String


Dim strTemp() As String

Dim rng As Range

Dim a As String

Dim cr As Integer

Dim k As Integer

Dim i As Integer


For Each rng In 범위

   If rng = 구분 Then

   ReDim Preserve strTemp(i)

     If rng.Offset(0, 2).Value > 2 Then

          strTemp(i) = rng.Next.Value

           i = i + 1      

     End If

   End If

Next rng

a = Join(strTemp, " / ")

cr = 1

Do Until k = 5

cr = InStr(cr + 1, a, "/")    ' / 라는 기호가 나오는 위치 찾기 

k = k + 1                         ' /라는 기호가 올때, 즉 과목이 달라질때 갯수 세기. 

                                   '다섯번째 /가 나오면 다섯번째 과목이므로 다음줄로 넘긴다

Loop

ConcatText = Mid(a, 1, cr) & vbLf & Mid(a, cr, Len(a))    '다음줄로 넘기는 기호는 vbLf 이다   '

End Function


다섯과목이 되면 다음줄로 넘어가게 했습니다.

열과목이 되면 또 다음줄로 넘어가게 할 수도 잇겠지요

저 다음에 한번더 Loop를 돌려서 10번째 / 기호가 나오는 위치를 찾는 코드를 집어넣으면....


하지만 그것까지는 필요가 없을듯하여, 패스합니다.