我在電子表格中插入下面的簡單功能到一個模塊: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'。是不是隱含的東西很好?) - 是否考慮到了?即在同一範圍內的所有名稱? –