Q:

Getting range name from cell within that range, .Name doesn't seem to be working

What I am trying to do is get the range name from a cell within that range. I've looked around and it seems like everyone suggests to use .Name or .Name.Name however when I try .Name and .Name.Name neither seem to work as I get an object/application defined error. 
I have a spreadsheet set up so there are a few ranges each headed by a cell with all cells below that cell within the same range. I was originally just working with the .Value of the header cell but this creates some problems. My program does a variety of things and one of them is create a separate sheet with only an individual range's data on that sheet and it's named the same as the range name. However since I can't name a sheet more than 30 characters (and the fact that I can't use spaces or special characters other than underscores in range names is starting to make it really hard to visually read what the header cell says) I've been trying to name the range as an "Umbrella term" basically like if the header cell is "Project Management something/something (something)..." I could just name the range ProjMgmt since it's shorter but it's having issues since the value of the header cell and range name aren't the same. The header cell is a merged cell btw if that matters and these range names have been assigned manually with the name manager and I'm using excel 2010
EDIT: Side question: when you manually add names using name manager does it not add them to workbook.Names or wherever it should go? It seems like workbook.Names is not populated with anything other than sheet names
Here is my code where I am having trouble. This is inside of a loop so the <> OrgName is for when it enters a new range 
If TempP.Value <> OrgName And TempP.Value <> "" Then
   OrgName = TempP.Value
...rest of code that works

I want to try something like this
If TempP.Name <> OrgName And TempP.Value <> "" Then
   OrgName = TempP.Name

I also have an InRange function that determines if a cell is within a given range that I got from elsewhere that I might be able to use
Function InRange(Range1 As Range, Range2 As Range) As Boolean
    Dim InterSectRange As Range
    Set InterSectRange = Application.Intersect(Range1, Range2)
    InRange = Not InterSectRange Is Nothing
    Set InterSectRange = Nothing
End Function

A:

You could use it along with your InRange function like this...
Dim ThisName As Name
For Each ThisName In ActiveWorkbook.Names
    If InRange(TempP, ThisName.RefersToRange) And TempP.Value <> "" Then
        Set OrgName = ThisName
    End If
Next

ThisName will display the Sheet name, but ThisName.Name will contain the name of range shown in Name Manager. So you just need to go one level deeper to see the names you've added.

