Firstly just a comment. I don't understand the yellow cell values in post #3 - they don't seem to agree to the code requirements.
Do you really need a macro? Could you just use a formula in column F? F2, copied down:
=LOOKUP(E2,{0,23,23.5,24,25,26,27},{1,2,3,3.5,4,4.5,5})
Then if a new column is added, the formulas will just adjust automatically.
Assuming you do need a macro, then this would be my suggestion. It also just populates the relevant column with a formula but if you want static values instead of formulas, just uncomment the .Value = .Value line of code.
I have also assumed that you want those final values to always be based on the 'BPH' column.
If they should be based on whatever is immediately to the left of the column they are being entered into, then the code would be simpler.
<font face=Courier New><br><SPAN style="color:#00007F">Private</SPAN> <SPAN style="color:#00007F">Sub</SPAN> CommandButton1_Click()<br> <SPAN style="color:#00007F">Dim</SPAN> LastRow <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN>, BPHCol <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN>, BPHRankCol <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN><br> <SPAN style="color:#00007F">Dim</SPAN> oSet <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">Long</SPAN><br><br> <SPAN style="color:#00007F">Const</SPAN> f <SPAN style="color:#00007F">As</SPAN> <SPAN style="color:#00007F">String</SPAN> = "=LOOKUP(RC[#]," _<br> & "{0,23,23.5,24,25,26,27},{1,2,3,3.5,4,4.5,5})"<br><br> LastRow = Range("A2").End(xlDown).Row<br> BPHCol = Rows(1).Find(What:="BPH", LookIn:=xlValues, _<br> LookAt:=xlWhole, MatchCase:=False, _<br> SearchFormat:=False).Column<br> BPHRankCol = Rows(1).Find(What:="BPH Rank", LookIn:=xlValues, _<br> LookAt:=xlWhole, MatchCase:=False, _<br> SearchFormat:=False).Column<br> oSet = BPHCol - BPHRankCol<br><br> <SPAN style="color:#00007F">With</SPAN> Cells(2, BPHRankCol).Resize(LastRow - 1)<br> .FormulaR1C1 = Replace(f, "#", oSet)<br><SPAN style="color:#007F00">' .Value = .Value</SPAN><br> <SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">With</SPAN><br><SPAN style="color:#00007F">End</SPAN> <SPAN style="color:#00007F">Sub</SPAN><br><br><br></FONT>