You can't* name variables programatically. Ie Dim Cel1, Dim Cel2, Dim Cel3.
I would use an array like JKwan said, with one small change
Dim cel(250) As String
For pk = 0 to 249
cel(pk) = Cells(2, pk + 2).Value 'Row 2, Column pk + 2
cel(pk) = Cells(pk + 2, 2).Value 'Row pk+2, Column "B"
If you are not storing the Cel(n) = Value(n) strings as text somewhere, just retrieve the values from the Array.
To create strings to store as text from the values in the Array
For i = 0 To 249
String = "Cel" & CString(i + 1) & " = " & Array(i)
*You can use a loop to write variable names in an entire code module that is created programatically, but that is a VBIDE lesson for another day.