The aim of the following is to automate a spelling test process.
Each word in the test has an attached word list of between 1 and 11 eleven words that students need to practise if they are unable to spell the word correctly.

The VBA below currently generates a list of words for an individual specified in cell C2 however I would like the VBA to generate a list of words for all available individuals. I am thinking that I will need a 'For... Each' loop but I'm not quite sure how to implement. 

Ideally, I would like words to be outputted to a worksheet which contains the following info:

* A summary at the top which outlines students who have completed the test and the number of words they have been allocated. The summary also highlights students who have less than 10 words need to complete the next test immediately and students who have more than 10 but less than 50, need to complete the next test in the near future.
* A section for individual students who have more than zero words which specifies: first name, surname, number of words and date. Words should appear in a grid which is 12 columns wide and the necessary number of rows high.

```
Sub GenerateSpellingWords()

Dim nameColumnNumber As Integer
Dim namePerson As String
Dim WS As Worksheet

nameColumnNumber = Sheets("Dashboard").Range("I2").Value
namePerson = Sheets("Dashboard").Range("C2").Value

 Sheets.Add.Name = namePerson
 Range("A1:L1").Select
 Selection.Merge
 With Selection
 .HorizontalAlignment = xlCenter
 .VerticalAlignment = xlCenter
End With
ActiveCell.FormulaR1C1 = namePerson & "'s Spelling Words"
Rows("1:1").RowHeight = 27.75
Range("A1:L1").Select
Selection.Font.Bold = True
With Selection.Font
.Size = 14
End With

Sheets("Dashboard").Select
Rows("4:34").Select
Selection.AutoFilter
Sheets("Dashboard").Range("$A$4:$W$34").AutoFilter Field:=nameColumnNumber,  Criteria1:="N"
Sheets("Dashboard").Range("C5:N34").Select
Selection.Copy
Sheets(namePerson).Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Cells.Replace What:="0", Replacement:="'", LookAt:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Range("A2").Select
Sheets("Dashboard").Select
Range("C2").Select
Selection.AutoFilter
End Sub

```