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