在Excel中检索单元格名称

有没有一种方法显示另一个单元格中特定单元格的单元名称? 我想在相邻的单元格中显示单元名称,以便用户能够识别单元名称而不必单击它。

谢谢…

该函数将给出单元格所属的NamedRange的名称:

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

它遍历工作簿中的所有名称,然后检查每个名称是否引用此工作表input参数所来自的任何名称。 如果是,那么它检查input单元格和由名称引用的范围是否相交。 如果他们这样做,则返回范围的名称。

ADDRESS(ROW(),COLUMN())会给你地址,例如当前单元格的$ A $ 1。 加/减行/列值(数字)以引用您所在的单元格。

如果你不想要$,那么你可以用SUBSTITUTE(ADDRESS(ROW(),COLUMN()),"$","")来find并replace它,例如A1

在Excel 2013中,也可能在一些较早的版本中, ADDRESS()接受第三个参数,该参数定义了要返回的地址格式,其中包含以下值:

1 – 绝对(默认)

2 – 绝对行/相对列

3 – 相对行/绝对列

4 – 相对

所以让我们在A1单元格中说

 ADDRESS(ROW();COLUMN()) //outputs $A$1 ADDRESS(ROW();COLUMN();1) //outputs $A$1 ADDRESS(ROW();COLUMN();2) //outputs A$1 ADDRESS(ROW();COLUMN();3) //outputs $A1 ADDRESS(ROW();COLUMN();4) //outputs A1 

如果要在单元格A1中显示单元格D3的名称,请键入:

 ADDERSS(ROW(D3);COLUMN(D3);4) //outputs text D3 in cell A1 

我从Adarsha上面的答案中得到了一些“build议”。 我得到了类似的结果,下面的代码,与该循环和一些改进。 然而,我的'提示为Excel'macros是让你的debugging器最好的朋友。

 ' Functionname_of(clls) ' name_of = "" ' Dim nam As String Dim rg As Range Set rg = clls ' nam = rg.Name.Name ' name_of = nam ' End Function 'name_of ' 

有一点耐心和毅力,给了我正是我要找的东西 – 一个用户定义的函数给我一个单元格的定义名称。 如果同一个Cell有多个名字,会发生什么? 试试看看。 这是一个简单的testing,所以我想让你去实验,学习和传授你的新知识。

享受,… W

ActiveWorkbook.Sheets.Item(1).Cells(row,col).Name.Name

这似乎不可能,这是不可思议的。 你会认为cell()函数应该提供一个获取名字的方法,但是它不会。 游民。

这将在非常基本的情况下工作:

 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 

如果单元格是命名范围的一部分,它将不会工作,它不会显示单元格的多个名称,它不适用于包含在命名公式中的单元格(例如=OFFSET()范围)。

 "=" & cel.Parent.Name & "!" & cel.Address 

事情也相当笨拙。 检查可能有更好的方法。 从RefersTo和使用Intersect()创build一个Range对象可能工作。

Excel确实有一个函数“Cell()”,您可以从中获取某些属性。

您可以使用= Cell(“row”,K9)并返回第9行,并有一个等效的“col”参数,但返回列号(11)而不是字母。

引用另一个单元格中的命名单元格E12,然后使用以下公式:=“'”&FORMULATEXT(E12)。 这在前面放一个撇号,所以它会显示名称或公式作为文本。

您可以将光标置于空单元格中,键入=,然后单击指定的单元格。 它将显示单元格内容。 然后你改变单元格的格式为文本,它会显示=