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