在范围旁边显示范围名称
Showing range name next to the range
在 Excel 2013 年,我在 sheet 参考数据上使用命名范围来引用另一个 sheet.
上一堆公式中的常量
有没有办法在范围本身旁边显示范围名称?例如,如果我有一个名为 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
在 Excel 2013 年,我在 sheet 参考数据上使用命名范围来引用另一个 sheet.
上一堆公式中的常量有没有办法在范围本身旁边显示范围名称?例如,如果我有一个名为 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