ステータスバーのActiveCellに関する重要な情報を表示する個人用マクロを作成しています。テーブルまたはピボットテーブルの名前(存在する場合)は、と書かれています。 valueそれは保持するなど。与えられたセルの名前付き範囲を見つける
ここで、セルが含まれている名前付き範囲の名前も表示したいと思います。ActiveWorkbookの名前コレクションをスキャンして交差テストを行うことができましたが、簡単な方法はありますか?
ステータスバーのActiveCellに関する重要な情報を表示する個人用マクロを作成しています。テーブルまたはピボットテーブルの名前(存在する場合)は、と書かれています。 valueそれは保持するなど。与えられたセルの名前付き範囲を見つける
ここで、セルが含まれている名前付き範囲の名前も表示したいと思います。ActiveWorkbookの名前コレクションをスキャンして交差テストを行うことができましたが、簡単な方法はありますか?
最も簡単な方法は、名前をループすることです。
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
もちろん、それは誰でも来るかもしれませんが、その質問も関連性がありますか? –
@ MLind私は同意します。ところで、私はあなたのコンセプトが好きです。 –
個人的なワークブックのクラスモジュールで、Appl_SheetSelectionChangeは、Excel 2010がバーの右側に範囲の合計を書き込むのと同じように、ステータスバーの左側にある現在のセルに関する情報を書き込むサブルーチンを呼び出します。どういうわけか私はここでそれを共有することができますか?これはコードの2つのスクリーンページのようなものです。 –
名前付き範囲にActiveCellのみが含まれている場合、ActiveCell.Name.Nameは名前付き範囲を返します。 –
ありがとうThomas、有用だが、すでに悪用されているExcelのアドレスウィンドウ(左上)で推測する。 –