Jeden możliwy sposób (dotyczy tylko kolumn od A do E):
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lrow As Long
Dim sCol As Long
sCol = Target.Column
If Not Intersect(Target, Columns("A:E")) Is Nothing Then
If Intersect(Target, Columns(sCol)).Address = Columns(sCol).Address Then
lrow = Cells(Rows.Count, Target.Column()).End(xlUp).Row
Range(Cells(2, Target.Column()), Cells(lrow, Target.Column())).Select
End If
End If
End Sub
Jeśli wybierzesz całą kolumnę, wybór zmieni się na wiersz 2 aż do ostatniego wypełnionego wiersza. Jeśli wybierzesz pojedynczą komórkę w kolumnie, nic się nie dzieje.
Aby to zastosować, kliknij prawym przyciskiem myszy kartę arkusza, wybierz opcję „Wyświetl kod” i wklej kod do obszaru dużego białego kodu edytora Visual Basic. Zamknij VBE. Pamiętaj, aby zapisać skoroszyt jako plik z włączonym makrem, jeśli uruchomisz program Excel 2007 lub nowszy.