在Excel中查找ListObject中的活动单元格的列名称

我有一个在Excel中定义为ListObject的表格:

在这里输入图像说明

在VbA中,我可以使用ListObject("table1").ListRows访问行和列ListObject("table1").ListRowsListObject("table1").ListColumns

在我的一个潜艇中,我不想知道活动单元格的列名。 而且因为列可以移动,我希望这是dynamic的。

例如,在上一张图片中,假设我点击了第三列的单元格。 我想有一个函数告诉我与当前ListObject中的单元格关联的列名称。

在这种情况下,它将返回Line Desc.

我试图用一个间谍find一个对象path,让我找出列的名称,但我找不到任何。

在我开始构build一个能够做到这一点的函数之前,我想确保在VbA对象库中不会丢失任何东西。

任何想法,如果有一种内置的方式来查找活动单元格的列名称?

谢谢

注意:如果我用完了时间并创build一个函数,我会在这里发布它。

编辑 这是我迄今为止发现的:

 Function ColumnName(byVal Target as Range) If Sheets("Equipements").Listobjects("tMain").Active then ColumnName = ListObjects("tMain").HeaderRowRange.Cells(1, Target.Column).Value End If End Function 

ListObject不从列A启动时,可能会出现问题。

Con:只固定在表“tMain”上,不能在其他表上使用。

你可以试试这个(如果Target超过1个单元格,只使用左上angular的单元格):

 Option Explicit Function ColumnName(ByRef Target As Range) As String If Not Target.ListObject Is Nothing Then ColumnName = Intersect(Target.ListObject.HeaderRowRange, Target.EntireColumn).Value Else ColumnName = "" End If End Function