Если под заголовком столбца вы подразумеваете ячейку в первой строке того же столбца, в которую было внесено изменение, то вы можете создать заголовок, используя ячейки, т.е.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
MsgBox Target.Value
MsgBox ActiveCell.Address & vbNewLine & "Column header is " & Cells(1, Target.Column)
End Sub
Если бы ваш заголовок был в строке 2, вы бы использовали Cells(2, ActiveCell.Column)
и т.д.
[Обновлено после комментария ниже]
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim rng1 As Range
Set rng1 = Target.End(xlUp)
MsgBox "First value before a blank cell/top of sheet is " & rng1.Value
End Sub