Como pode ser facilmente observado, se mudarmos o nome da folha, por exemplo, de SHEET1 para TESTE01, nada acontece na célula que contém a função =NomeLF("F"), ou seja, a célula não é actualizada, apesar da alteração efectuada.
A maneira mais prática de "provocar" essa actualização, de um modo mais ou menos automático, é incluir no código a instrução Application.Volatile, porque o Excel não consegue determinar que é necessário efectuar o recálculo para actualizar a folha.
O Código:
Option Explicit
Public Function NomeLF(strChoice As String) As String
Dim livro As String
Dim folha As String
Application.Volatile ' Esta é a nova linha
If strChoice = "L" Then
livro = ActiveWorkbook.Name
NomeLF = livro
ElseIf strChoice = "F" Then
folha = ActiveSheet.Name
NomeLF = folha
Else
End If
End Function