我在电子表格中插入下面的简单功能到一个模块:Excel的VBA函数的工作在一些地方,而不是其他
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
我只想与细胞在相邻的命名变量来一补列柱。
奇怪的是,该功能可在一些细胞中,但在另抛出一个#N/A错误。在有名字的单元格中。
谁能帮我明白了吗?我不是VBA专家;我确实对这个问题做了一些研究,但是发现只有比这个更复杂的问题的答案。
谢谢。
如果有一个“定义名称”整整(只)在你使用,那么你将得到该名称(如果有多于一个,则仅仅是第一遇到)细胞。如果没有“名字”直接进入这个单元格,那么你会得到“#N/A”。有什么细节在这里不起作用? –
这个函数似乎对我很有用,它返回指针'cel'没有'Name'的#N/A值。 –
名称的范围可以是工作簿或工作表。你没有限定你正在迭代的'Names'集合,所以它隐含地引用'ThisWorkbook.Names'(或'ActiveWorkbook.Names',...不知道..也可能是'ActiveSheet.Names'。是不是隐含的东西很好?) - 是否考虑到了?即在同一范围内的所有名称? –