O kontrolu prázdnej bunky sa stará táto podmienka:
If Target.Resize(1, 1).Value <> "" Then
Ak to chceš kontrolovať opačne, tak stačí nahradiť Target za Source.Prípadne to môžeš ošetriť už pri označovaní v metóde Worksheet_BeforeDoubleClick nejako takto:
If Not aRange Is Nothing Then
If aRange.Value <> "" Then
Set Source = aRange.Resize(1, aTable.Columns.Count)
Source.Copy
Cancel = True
End If
End If
Do toho predchádzajúceho makra to dúfam zvládneš dať aj sám.