显示范围

时间:2016-06-07 08:53:18

标签: excel-formula excel-2013 named-ranges

在Excel 2013中,我在一张参考数据上使用命名范围来引用另一张工作表中的一组公式中的常量。

有没有办法显示范围本身旁边的范围名称?例如,如果我将单元格AB23命名为SC_Item,是否有任何方法可以使AC23显示" SC_Item",也许还有{{1}的某些内容(完全由当然组成)或类似的?

1 个答案:

答案 0 :(得分:1)

除非有内置方法(我还没有使用过2013年),否则此代码将完成这项工作。
它将检查目标单元格是否在命名范围内,并且适用于单个单元格命名范围或属于较大命名范围的单元格。

Public Function NamedRange(Target As Range) As String

    Dim vName As Variant

    For Each vName In ThisWorkbook.Names
        If Not Intersect(Target, Range(vName)) Is Nothing Then
            NamedRange = vName.Name
            Exit For
        End If
    Next vName

End Function

如果您的命名区域只是一个单元格,这将有效(尽管我确信这是一个更好的方法)。

Public Function NamedRange1(Target As Range) As String

    On Error GoTo ERROR_HANDLER

        NamedRange1 = Target.Name.Name

    On Error GoTo 0
    Exit Function

ERROR_HANDLER:
    Select Case Err.Number
        Case 1004 'Application-defined or object-defined error.
            NamedRange1 = Target.Address
            Resume Next
        Case Else
            MsgBox "Error " & Err.Number & vbCr & _
                " (" & Err.Description & ") in procedure Module1.NamedRange1."
            Application.EnableEvents = True
    End Select

End Function