My code was written on the assumption that your ranges were named ranges and not range objects. You can change each of your Set lines from
Set RngR1 = Sheet11.Range("B8:F44") 'Checkbox 8
to this. Note that the Range name digit - in this case 1 - needs to match the checkbox name, like so the above set should become:
ActiveWorkbook.Names.Add Name:="RngR8", RefersToR1C1:="='" & Sheet11.Name & "'!R8C2:R44C6" 'Checkbox8
I also assumed that your ranges were single row or column - we need to index through by row and column instead of just by cells, so change this
ReDim Preserve RngArray(1 To j + Range("rngR" & i).Cells.Count)
For k = 1 To Range("rngR" & i).Cells.Count
RngArray(j + k) = Range("rngR" & i).Cells(k).Value
Next k
To this (add a Dim m As Integer in the declarations) - all of your ranges are 5 columns wide
ReDim Preserve RngArray(1 To 5, 1 To j + Range("rngR" & i).Rows.Count)
For m = 1 To Range("rngR" & i).Columns.Count
For k = 1 To Range("rngR" & i).Rows.Count
RngArray(m, j + k) = Range("rngR" & i).Cells(k, m).Value
Next k
Next m
and after the looping is done, you need to transpose the array
RngArray = Application.Transpose(RngArray)
Bookmarks