使用EXCEL中的函数通过地址或引用获取单元格的名称
我搜查了很多,但没有find任何好的答案!
是否有任何内部函数通过传递其地址作为参数返回单元格的
Name
?
如果不是,通过提供地址/引用来获取我们为单元格定义的name
的最简单方法是什么?
例如,我将“test_name”定义为单元格B4
的name
,其内容是“test”。
我想在Excel中的函数,如:CellName(adr),并使用它像CellName(B4),并返回“ test_name ”
我也search了很多,find一个内置的Excel函数,但没有发现任何东西!
您可以使用UDF
(用户定义函数)在Excel
实现Cell Name
对于这个行为,我们将使用视觉基础语言(vb)
我发现了一些很好的定义函数,我将解释如何添加。
我已经附加了3种types的VB 代码,你可以自己select其中的一种,并添加它。
脚步
-
首先,打开所需的物品 :你可以在这里看到这一步或按照下面的方式:
-
在Excel中打开一个新的工作簿 。
-
您应该在应用程序的可视化基础(VBA)中定义所需的function,
-
打开VB使用短键alt + F11
-
添加一个新的模块到您的工作簿。
-
一个新的模块窗口将被打开,用于在那里添加你的代码。
-
-
第二,附加代码 :
-
只复制以下三个代码中的一个:
1. CellName1(单元格):获取单元格地址并返回单元格的名称
Public Function CellName1(cel As Range) As Variant Dim nm As name For Each nm In Names If nm.RefersTo = "=" & cel.Parent.name & "!" & cel.Address Then CellName1 = nm.name Exit Function End If Next CellName1 = CVErr(xlErrNA) End Function
2. CellName2(cell):获取单元格地址并返回单元格的名称
Function CellName2(cel As Range) As String Dim rng As Range On Error Resume Next Set rng = cel If Len(rng.name.name) < 0 Then CellName2 = "No named Range" Exit Function End If CellName2 = rng.name.name If InStr("CellName2", "!") > 0 Then CellName2 = Right(CellName2, Len(CellName2) - InStr(CellName2, "!")) End If End Function
3. CellName3(row,col):获取单元格的行和列,并返回单元格的名称
Function CellName3(r As Long, c As Long) As String Dim rng As Range Set rng = Cells(r, c) On Error Resume Next If Len(rng.name.name) < 0 Then CellName3 = "No named Range" Exit Function End If CellName3 = rng.name.name End Function
-
不要忘记保存你粘贴的function!
例子
考虑名称为“test_name”的单元格B4 ,现在可以通过上面定义的每个函数获取它的名称…
现在假设另一个像D7的单元格。
我们对这个单元格使用第一个函数( CellName1
),对于结果,“B4”单元格的名称将是“D7”的内容,
所以我们将B4
作为parameter passing给函数,并获得其名称作为“D7”单元格的内容。
CellName1(B4)
要么
CellName2(B4)
要么
CellName3(4,2)