```
Private Sub Worksheet_Change(ByVal Target As Range)
Dim strTarget As String, lngLen As Long, intRep As Integer, i As Integer
Const intSplit As Integer = 63
'defines the range into which a relevant value might be entered (I assumed column A),
'and checks that the number of cells being changed is not >1.
'Reason for this is that it can get complicated trying to
'cope with a number of changes in one go.
If Intersect(Target, Range("A:A")) Is Nothing Or Target.Count > 1 Then Exit Sub
'checks the length of the value which has just been changed.
'If this is greater than our constant of 63 then...
If Len(Target.Value) > intSplit Then
'assign the string to a variable (for neatness)
strTarget = Target.Value
'assign the length of the string to a variable
lngLen = Len(strTarget)
'work out the number of cells over which to split the value:
'essentially the length of the string divided by 63 and rounded up to the nearest 1
intRep = Int(lngLen / intSplit) + 1
'loop through the string that number of times
For i = 1 To intRep
'offset from the changed cell downwards, and populate that cell with
'the string which is 63 characters long and whose starting character
'is a multiple of 63, starting at 0
Target.Offset(i - 1, 0).Value = Mid(strTarget, (i - 1) * intSplit + 1, intSplit)
'loop to the next iteration
Next i
End If
End Sub
```