在Excel中查找ListObject中的活动单元格的列名称
我有一个在Excel中定义为ListObject的表格:
在VbA中,我可以使用ListObject("table1").ListRows
访问行和列ListObject("table1").ListRows
或ListObject("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