【问题标题】:Get Name of Range in Excel with Formula用公式在Excel中获取范围名称
【发布时间】:2018-06-03 18:44:21
【问题描述】:

我已经在 Excel 中命名了一堆列。

现在我希望能够使用公式获取单元格中列的名称。

例如,如果 A:A 被命名为 Dates,我希望能够在单元格中放置一个公式,以便 =RangeName(A:A) 返回单词 Dates。

我找到了如何对单个单元格执行此操作的示例,但不适用于一系列单元格。

这是我为单个单元格找到的。

    Public Function CellName(cel As Range) As Variant
Dim nm As Name
    For Each nm In Names
        If nm.RefersTo = "=" & cel.Parent.Name & "!" & cel.Address Then
            CellName = nm.Name
            Exit Function
        End If
    Next
CellName = CVErr(xlErrNA)
End Function

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    这听起来像是Intersect 的案例:

    Public Function CellName(cel As Range) As Variant
        Dim nm As Name
        For Each nm In Names
            If Not Intersect(cel, nm.RefersToRange) Is Nothing Then
                CellName = nm.Name
                Exit Function
            End If
        Next
        CellName = CVErr(xlErrNA)
    End Function
    

    【讨论】:

    • 好的 - 逻辑对我来说很有意义,但它似乎不起作用。如果我尝试调试并进入代码,它会第一次到达 If Not 行,然后就结束而不经过 For Each 循环或到达 Exit Function
    • 在具有一组有限命名范围的干净工作簿中尝试该函数。如果可行,请检查您的第一个工作簿是否存在可能导致此问题的问题。 On Error ... 可能还有名称管理器。
    猜你喜欢
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    • 2013-01-29
    • 2019-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-24
    相关资源
    最近更新 更多