I have a more wordy style, all variables Dim-ed and given names so I can remember what they do, comments added so I see my logic, .....
The raw data was is on Input and the results are on Output
Option Explicit
Sub SplitData()
Dim wsIn As Worksheet, wsOut As Worksheet
Dim rData As Range, rRow As Range
Dim vRow As Variant
Dim iOut As Long, iSplit As Long, iMatch As Long
Application.ScreenUpdating = False
Set wsIn = Worksheets("Input")
'delete existing Output
On Error Resume Next
Application.DisplayAlerts = False
Worksheets("Output").Delete
Application.DisplayAlerts = True
On Error GoTo 0
'add new sheet
Worksheets.Add.Name = "Output"
Set wsOut = Worksheets("Output")
'set just the input data rows
Set rData = wsIn.Cells(1, 1).CurrentRegion
rData.Rows(1).Copy wsOut.Cells(1, 1)
With rData
Set rData = .Cells(2, 1).Resize(.Rows.Count - 1, .Columns.Count)
End With
iOut = 2
With wsOut
For Each rRow In rData.Rows
vRow = Split(rRow.Cells(1, 6).Value, " ")
For iSplit = LBound(vRow) To UBound(vRow)
iMatch = InStr(vRow(iSplit), "]")
.Cells(iOut, 1).Value = Mid(vRow(iSplit), 2, iMatch - 2)
.Cells(iOut, 2).Value = rRow.Cells(1, 2).Value
.Cells(iOut, 3).Value = rRow.Cells(1, 3).Value
.Cells(iOut, 4).Value = rRow.Cells(1, 4).Value
.Cells(iOut, 5).Value = rRow.Cells(1, 5).Value
.Cells(iOut, 6).Value = vRow(iSplit)
iOut = iOut + 1
Next iSplit
Next
End With
wsOut.Cells(1, 1).CurrentRegion.EntireColumn.AutoFit
Application.ScreenUpdating = True
End Sub