Q:

Reference named single cell ranges in another range to copy-paste

I would like to copy and paste specific columns of a data set (table) with this two features:

data don't start in a known row  
the number of observations is unknown (so is the number of rows with data)

I used the find function to get the ranges of the first and last cells with data, but then I can't figure out how to reference them in the copy function. The following is an example of what I want to do:    
Sub prueba_copy()

Dim sht As Worksheet
Dim sht3 As Worksheet
Dim LastRow As Long
Dim FirstRow As Range

Set sht = ThisWorkbook.Worksheets(Sheet1.Name)
Set sht3 = ThisWorkbook.Worksheets(Sheet3.Name)

Set FirstRow = sht.Cells.Find("TIPO DE USO", searchorder:=xlByRows,     LookAt:=xlPart) ' the result is range: F4

LastRow = sht.Cells.Find("*", after:=Cells(1, 2), searchorder:=xlByRows, searchdirection:=xlPrevious).Row 'the result is: 9

FirstRow and LastRow are going to be used to reference the range to copy. I want to copy the data from FirstRow to the column of FirstRow (e.i. F) and the row of LastRow (e.i. 9), so the action would read range(F4:F9).copy
'copy paste
 sht.Range("FirstRow.address():Firstrow.addres().column" & LastRow).Copy sht3.Range("A1")

End Sub

I have tried many options to reference the ranges with no success. So, I would be really grateful for your help. 
As I am new to this, I would also appreciate any suggestion of a good webpage to learn.   
Thanks,
Gustavo

A:

Dim f As range

Set f = Sheet1.Cells.Find("TIPO DE USO", searchorder:=xlByRows, LookAt:=xlPart)

If Not f Is Nothing Then
    Sheet1.Range(f, Sheet1.Cells(Rows.Count, f.Column).End(xlUp)).Copy _
                 Sheet3.Range("A1")
Else
    Msgbox "Header not found!"
End If 

