2016-08-03 9 views
1

ステータスバーのActiveCellに関する重要な情報を表示する個人用マクロを作成しています。テーブルまたはピボットテーブルの名前(存在する場合)は、と書かれています。 valueそれは保持するなど。与えられたセルの名前付き範囲を見つける

ここで、セルが含まれている名前付き範囲の名前も表示したいと思います。ActiveWorkbookの名前コレクションをスキャンして交差テストを行うことができましたが、簡単な方法はありますか?

+2

名前付き範囲にActiveCellのみが含まれている場合、ActiveCell.Name.Nameは名前付き範囲を返します。 –

+0

ありがとうThomas、有用だが、すでに悪用されている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私は同意します。ところで、私はあなたのコンセプトが好きです。 –

+0

個人的なワークブックのクラスモジュールで、Appl_SheetSelectionChangeは、Excel 2010がバーの右側に範囲の合計を書き込むのと同じように、ステータスバーの左側にある現在のセルに関する情報を書き込むサブルーチンを呼び出します。どういうわけか私はここでそれを共有することができますか?これはコードの2つのスクリーンページのようなものです。 –

関連する問題