Here's your version, minimally adjusted to make it work:
Sub Test()
Dim r 'these three are not integers - Variants if you want
Dim p
Dim q
Set rngDesign = Worksheets("Data").Range("B2")
r = Split(rngDesign.Value, ",") 'you missed out 'Split'
p = Split(r(3), ")=")
q = Split(r(0), "(")
Worksheets("Statistics").Select
Range("E6").Select 'you had an extra double-quote mark
With ActiveCell
..Offset(0, 0).Value = q(1)
..Offset(1, 0).Value = r(1)
..Offset(2, 0).Value = r(2)
..Offset(3, 0).Value = p(0)
..Offset(4, 0).Value = p(1)
End With
End Sub
Now with a few refinements so that it doesn't matter what sheet is the
active sheet when you run it, nor does it change that active sheet.
Sub Test2()
Dim r
Dim p
Dim q
Set rngDesign = Worksheets("Data").Range("B2")
r = Split(rngDesign.Value, ",")
p = Split(r(3), ")=")
q = Split(r(0), "(")
With Worksheets("Statistics").Range("E6")
..Offset(0, 0).Value = q(1)
..Offset(1, 0).Value = r(1)
..Offset(2, 0).Value = r(2)
..Offset(3, 0).Value = p(0)
..Offset(4, 0).Value = p(1)
End With
MsgBox "done" 'remove later
End Sub
re:"give me a brief description of what your code and variables are actually
doing please"
Well, the
r = Split(rngDesign.Value, ",")
splits the string "LD(24,6,3,6)=163" into an array of strings using the
comma as delimiter, so it results in:
r(0) being "LD(24"
r(1) being "6"
r(2) being "3"
r(3) being "6)=163"
So r(1) and r(2) can be used straight away, leaving r(0) and r(3) to sort out.
The next line:
p = Split(r(3), ")=")
splits r(3) into an array with 2 members, using the ")=" to delimit (hoping
you'll only ever have one of these character combinations in the string):
p(0) being "6"
p(1) being "163 "
both of which can be used 'as is'.
The next line:
q = Split(r(0), "(")
splits r(0) in the same way but uses "(" as a delimiter resulting in:
q(0) being "LD"
q(1) being "24"
Now there are 8 strings in 3 arrays; only the ones you want are then put
into the sheet. Excel seems happy to recognise the strings as numbers once on
the sheet.