2013-05-17 37 views
2

我使用VBA函數來獲取細胞名稱(從Retrieving Cell name in Excel拍攝)爲什麼不使用自定義函數來重新計算名稱?

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 

當小區的名稱不存在,它會顯示錯誤 - 這當然是預期的行爲。但是,當我然後命名其他單元格(我想獲得的名稱)時,單元格中的錯誤仍處於活動狀態。重新計算沒有幫助。然後我需要改變另一個單元格的值(我可以更改它的值或更改另一個單元格的值)或其公式,因此該單元格中的值將被重新計算,所以我的單元格與CellName函數得到適當刷新。

我沒有看到爲什麼,我能做些什麼來簡化使單元格刷新時,我的名字指向單元格?

這是Excel 2007,文件類型爲xlsm。

回答

相關問題