首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在excel中使用VBA查找活动单元格的列标题名称

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

Stack Overflow用户
提问于 2011-10-04 13:31:23
回答 4查看 41.3K关注 0票数 5

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

当我选择时,活动单元格的标题将高亮显示为橙色,但我希望使用visual basic检索该值。我可以找到excel表格的地址,但我需要表格的列标题

代码语言:javascript
运行
复制
   Private Sub Worksheet_Change(ByVal Target As Excel.Range)
      MsgBox Target.Value 
      MsgBox ActiveCell.Address
   End Sub
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-10-04 14:17:17

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

代码语言:javascript
运行
复制
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
票数 5
EN

Stack Overflow用户

发布于 2013-06-06 23:13:21

代码语言:javascript
运行
复制
strCurrentColName = Cells(ActiveCell.ListObject.Range.Row, ActiveCell.Column).Value
票数 2
EN

Stack Overflow用户

发布于 2011-10-04 13:43:28

如果你说的列标题是指同一列中第一行的单元格,那么你可以使用单元格构造标题,即

代码语言:javascript
运行
复制
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)

在下面的评论之后更新

代码语言:javascript
运行
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7643652

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档