You can set DropDownCell to Me.Range("A:A")
Since this will also include cells that don't have values, the test for a valid intersection needs to account for this.
- Define a new range.
- Set this range to the return from Intersect.
- If this range is not Nothing, then verify it has a value
- Once the intersection is known to be valid, proceed with finding LastRow and the rest of your code.
Something along the lines of
Dim Sect as Range
...
Set Sect = Intersect(Target, DropDownCell)
If Not Sect Is Nothing Then
If Sect.Value <> "" Then
(your code)
End I
End If
Change the assignment of SourceRange to
Set SourceRange = Range(SourceSheet.Cells(CopyRow,2),SourceSheet.Cells(CopyRow,4))