안녕하세요?
이전에 답변받으셨던 코드는 무시하고 새로이 코딩했습니다.
나타내고자 하는 설명을 제가 100% 이해했는지 잘 모르겠지만...
암튼 아래는 첨부파일에 사용된 코드입니다...
Option Explicit
Sub Test()
Dim Tmp As Variant, Spl As Variant, Spl_2 As Variant
Dim Tmp_Str As String
Dim i As Long, j As Long, k As Long, x As Integer
Dim Str_1 As String
Dim Str_2 As String
Dim Str_3 As String
Dim Str_4 As String
Application.ScreenUpdating = False
With ActiveSheet
For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
Tmp = Split(.Cells(i, 1), Chr(10))
Spl = Split(Tmp(0), "|")
x = UBound(Spl)
For j = 1 To x
.Cells(i, j + 1).Value = Replace(Spl(j), "]", "")
Next j
Tmp_Str = Replace(Replace(.Cells(i, 1), Chr(10), "||"), "^|^", "")
Spl_2 = Split(Tmp_Str, "||")
Select Case x
Case 1
For k = 2 To UBound(Spl_2) Step 4
Str_1 = Str_1 & ";" & Spl_2(k)
Str_2 = ""
Str_3 = Str_3 & ";" & Spl_2(k + 1)
Str_4 = Str_4 & ";" & Spl_2(k + 2)
Next k
Case 2
For k = 3 To UBound(Spl_2) Step 6
Str_1 = Str_1 & ";" & Spl_2(k)
Str_2 = Str_2 & ";" & Spl_2(k + 1)
Str_3 = Str_3 & ";" & Spl_2(k + 2)
Str_4 = Str_4 & ";" & Spl_2(k + 3)
Next k
End Select
.Cells(i, 4).Value = Mid(Str_1, 2)
.Cells(i, 5).Value = Mid(Str_2, 2)
.Cells(i, 6).Value = Mid(Str_3, 2)
.Cells(i, 7).Value = Mid(Str_4, 2)
Str_1 = ""
Str_2 = ""
Str_3 = ""
Str_4 = ""
Next i
End With
Application.ScreenUpdating = True
End Sub
자세한 내용은 첨부파일을 참고로...
그럼 잘 해결되시길... ^^*
=====================================================================================
첨부파일