在Excel中使用VBA查找活动单元格的列标题名称

kin*_*jou 5 excel vba excel-vba

我有一个从数据列表创建的表。如何查找每列的标题文本

表

当我选择活动单元的标头时,其突出显示为橙色,但我想使用Visual Basic检索该值。我可以找到Excel工作表的地址,但是我需要表的列标题

   Private Sub Worksheet_Change(ByVal Target As Excel.Range)
      MsgBox Target.Value 
      MsgBox ActiveCell.Address
   End Sub
Run Code Online (Sandbox Code Playgroud)

chr*_*sen 5

如果传递的单元格在表格中,这将返回列标题

Function TableHeader(cl As Range) As Variant
    Dim lst As ListObject
    Dim strHeading As String

    Set lst = cl.ListObject

    If Not lst Is Nothing Then
        TableHeader = lst.HeaderRowRange.Cells(1, cl.Column - lst.Range.Column + 1).Value
    Else
        TableHeader = ""
    End If
End Function
Run Code Online (Sandbox Code Playgroud)