Función para que las celdas combinadas no funcionen al hacer reference a celdas en diferentes libros de trabajo

Tengo una function (de un colega que ya no está disponible …) que toma celdas combinadas y básicamente escribe su valor en todas y cada una de las celdas no fusionadas de una spreadsheet diferente:

Function MergedValue(rRange As Range) If rRange.MergeCells Then MergedValue = rRange.MergeArea(1).Value Else 'MergedValue = rRange.Value MergedValue = rRange(1, 1).Value End If End Function 

La function funciona perfectamente cuando ambas hojas (la que tiene las celdas combinadas y la que tiene las celdas no fusionadas) están en el mismo libro de trabajo.

Sin embargo, dado que la hoja de evaluación (con las celdas no fusionadas) ha crecido bastante y está ralentizando el libro de trabajo, he estado tratando de moverlo a un libro de trabajo por separado.

Muevo la hoja de evaluación (con las celdas no fusionadas) a un nuevo libro de trabajo y también copio la function para que se conozca en el nuevo libro de trabajo. Simplemente arrastro el module al nuevo libro de trabajo en el editor vba. Y copie las siguientes líneas de "Thisworkbook" en la nueva:

 Private Sub Workbook_Open() Application.MacroOptions Macro:="MergedValue", Description:="Returns the value of the reference cell in a merged area.", Category:="some category", StatusBar:="some status" End Sub 

Todo esto dicho y hecho, la function hace su trabajo hasta que cierro el nuevo libro de trabajo y lo vuelvo a abrir … luego solo obtengo los errores de "#Valor" en todas las celdas que usan la function. Definitivamente es un problema con la function ya que las references a las células comunes sin pasar por la function funcionan sin problemas.

Sospecho que tal vez tenga que ver con Excel escribiendo todo el path en las celdas solo después de que se haya guardado y cerrado, ¡pero parece que no puedo encontrar ningún tipo de solución para este problema!

Aquí hay un ejemplo de cómo se ve la fórmula en las celdas después de save y volver a abrir:

 MergedValue('C:\Users\<myuser>\Desktop\[<name-of-spreadsheet>.xlsm]DYNO_SYS'!N35) 

Mientras que antes de save y volver a abrir el path aún no está incluido y la fórmula funciona:

 MergedValue([<name-of-spreadsheet>.xlsm]DYNO_SYS!N35) 

¿Alguna idea de cómo puedo hacer que funcione en el nuevo libro de trabajo? ¡Muchas gracias de antemano!