2016-08-03 65 views
1

我正在編寫一個個人宏,它顯示有關狀態欄上ActiveCell的重要信息,如它所屬的表或樞軸表的名稱(如果有),什麼未格式化值它擁有和這樣的。查找給定單元格屬於的命名範圍

現在我還想顯示單元格包含的命名範圍的名稱。我想我可以通過ActiveWorkbook的一些名稱集合進行掃描並使用相交進行測試,但有沒有更簡單的方法?

+2

如果命名範圍只包含ActiveCell,則ActiveCell.Name.Name將返回命名範圍。 – 2016-08-03 10:18:23

+0

謝謝托馬斯,這很有用,但已經被利用,我猜想在Excel的地址窗口(在左邊)。 –

回答

2

最簡單的方法是遍歷名稱。

Function getRangeNames(Target As Range) 
    Dim n As Name 
    Dim s As String 
    For Each n In ThisWorkbook.Names 
     On Error Resume Next 
     If Not Intersect(Target, n.RefersToRange) Is Nothing Then 
      s = s & n.Name & ", " 
     End If 
     On Error GoTo 0 
    Next n 

    getRangeNames = Left(s, Len(s) - 2) 
End Function 
+0

當然是,如果有人可能來,這個問題可能也是相關的? –

+0

@MLind我同意。順便說一句,我喜歡你的概念。 – 2016-08-03 13:35:26

+0

這是沒有什麼奇怪的,與個人工作簿中的類模塊與Appl_SheetSelectionChange調用一個子程序寫狀態欄左側的當前單元格的信息非常類似於Excel 2010將範圍總和寫入該欄的右側。也許我可以在這裏分享它?這只是兩個屏幕的代碼。 –