在范围旁边显示范围名称



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

有没有办法在范围本身旁边显示范围的名称?例如,如果我有名为 SC_Item 的单元格AB23,有没有办法使AC23显示"SC_Item",也许是带有类似=RANGENAME(AB23)的东西(当然是完全编造的)或类似的东西?

除非有一个内置的方法(我还没有使用过 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

相关内容

  • 没有找到相关文章

最新更新