如何在Google Sheets中实现返回单个单元格命名的自定义函数?
自定义函数返回单个单元格的专属命名
要实现你需要的功能,Excel没有内置对应函数,写个简单的VBA自定义函数就能解决,逻辑清晰好上手:
1. 创建自定义函数
- 按
Alt+F11打开VBA编辑器 - 右键左侧的工作簿名称,选择「插入」→「模块」
- 粘贴以下代码:
Function WhatIsCellName(cell As Range) As String Dim nm As Name ' 遍历工作簿中所有命名范围 For Each nm In ThisWorkbook.Names On Error Resume Next ' 跳过无效命名(比如引用外部工作簿/已删除单元格的命名) ' 只匹配单个单元格的命名,且目标单元格就是该命名对应的单元格 If nm.RefersToRange.Cells.Count = 1 And _ Application.Intersect(cell, nm.RefersToRange) Is cell Then WhatIsCellName = nm.Name ' 返回命名的名称 Exit Function ' 找到匹配项就退出,避免多命名冲突 End If On Error GoTo 0 Next nm ' 无匹配的单个单元格命名时返回空值 WhatIsCellName = "" End Function
2. 函数用法
回到Excel工作表,在需要显示名称的单元格(比如B1)输入:=WhatIsCellName(A1)
回车后就能得到A1对应的单个单元格专属命名(比如你例子里的「Box」),同时会自动忽略包含A1的多单元格命名(比如「boxes」)。
注意事项
- 保存工作簿时要选择「Excel 启用宏的工作簿(.xlsm)」格式,否则宏会丢失
- 如果单元格没有单个专属命名,函数会返回空值
- 代码自带错误处理,能跳过无效的命名范围,避免运行报错
内容的提问来源于stack exchange,提问作者Brendon P
相关产品推荐
相关产品推荐

