Maybe your code is on Sheet 1, and when you switch to Sheet 2, the objects aren't there? If this is the case, simply stating your target worksheet may be beneficial:
Sheets("Sheet1").Range("C21").Select
Because I try to avoid Select as much as possible, I'm not too familiar with how it works:-). Ranges can be defined and manipulated without having to pick them. It's also a good idea to be clear about everything you're referring to. You won't lose track if you switch from one sheet or workbook to another this way. Consider the following:
Option Explicit
Sub CopySheet1_to_PasteSheet2()
Dim CLastFundRow As Integer
Dim CFirstBlankRow As Integer
Dim wksSource As Worksheet, wksDest As Worksheet
Dim rngStart As Range, rngSource As Range, rngDest As Range
Set wksSource = ActiveWorkbook.Sheets("Sheet1")
Set wksDest = ActiveWorkbook.Sheets("Sheet2")
'Finds last row of content
CLastFundRow = wksSource.Range("C21").End(xlDown).Row
'Finds first row without content
CFirstBlankRow = CLastFundRow + 1
'Copy Data
Set rngSource = wksSource.Range("A2:C" & CLastFundRow)
'Paste Data Values
Set rngDest = wksDest.Range("A21")
rngSource.Copy
rngDest.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
'Bring back to top of sheet for consistancy
wksDest.Range("A1").Select
End Sub