728x90

네이버지식인에 올라온 질문을 보고 작성을 했습니다.

한문과 발음기호가 분리되지 않은 걸 셀 분리를 하고 싶다는 내용입니다.

이 경우에는 한문이 먼저 나오고 발음기호는 뒤에 나오는 걸 분리하는 VBA Code 입니다.


Sub 한문과기호분리()
    Dim rngC As Range       '// 선택영역 각 셀을 넣을 변수
    Dim rngAll As Range      '// 선택영역 전체 범위 변수
    Dim SplitPoint, i As Integer
    Dim TempStr As String

    Application.ScreenUpdating = False      '// 화면 업데이트 (일시)정지
    Set rngAll = Range([A2], Cells(Rows.Count, "A").End(3))    '// 범위 구간 지정
    '// A2 는 구간범위 시작셀, Cells(Rows.Count, "A").End(3)은 A열 값이 있는 마지막 셀

    For Each rngC In rngAll     '// rngC 는 각셀을 순환하는 셀, rngAll 은 전체 범위
        For i = 1 To Len(rngC)      '// rngC 셀의 각글자단위로 반복
            TempStr = Asc(Mid(rngC, i, 1))  '// 각 글자를 ASC값으로 변환하여 TempStr 변수에 저장
            If Not (TempStr >= -13663 And TempStr <= -514) Then    '// 한문이 아니면
                SplitPoint = i      '// 한문이 아닌 글자를 만나면 i 값을 기록하라
                Exit For            '// For문을 빠져 나가라
            End If
        Next i
        rngC.Offset(0, 1) = Trim(Mid(rngC, 1, SplitPoint - 1))  '// 현재 rngC 셀 기준으로 우측으로 1칸 이동
        rngC.Offset(0, 2) = Trim(Mid(rngC, SplitPoint, Len(rngC) - SplitPoint + 1))  '// 우측으로 2칸 이동
    Next rngC

    Set rngAll = Nothing  '// 변수 초기화
End Sub

블로그 이미지

Link2Me

,