Your function FindGRM() is hard coded for the range, as mentioned by DerbyDad03, but it is also hardcoded for Worksheet(3), i.e., your third worksheet (not necessarily "Sheet3")
I suspect that your function is searching for "GRM" on a different worksheet - that does not contain GRM.
Also as DerbyDad03 points out, your function will not respond if GRM is added or moved, unless you click on the cell containing =FindGRM, or you make the function volatile.
If you changed your function so that the range to be searched was included in the function, then it would work without being made volatile. Excel will keep track of the range it refers to and updates it if a cell in that range changes.
Also for a single 'Find' you have redundant code, such as first address. Making the function an integer function is not necessary, as this may limit error reporting from the function.
Public Function FindGRM(searchIn As Range) As Variant
Dim c As Range
'search for GRM in the specified range
Set c = searchIn.Find("GRM", LookIn:=xlValues)
If Not c Is Nothing Then
'found - return column number
FindGRM = c.Column
'not found - return #NA error
FindGRM = CVErr(xlErrNA)
Use this function with the appropriate range: