Sheets("Sh1").Range("B" & i).Copy.Sheets("sh2").Range ("A" & (i + 1))

Excel does not like it but I'm not sure whats wrong.

Also, I know there is a huge list of sites for learning but is there anyone that list many common used syntax's like above?