Pregunta

Tengo un archivo XLA que debe implementarse en varios usuarios de la organización como un complemento de Excel. Mi intención es implementarlo en un directorio en la carpeta "Documentos y configuración" del usuario en "Datos de la aplicación \ MyCompany". (De hecho, todo esto está trabajando a través de una envoltura que copia la última versión del XLA localmente y lo instala como complemento de Excel).

Sin embargo, si un usuario crea una hoja que hace referencia a una función definida en este XLA, aparece Excel para almacenar la ruta absoluta de la XLA en la llamada. Por lo tanto, si el usuario envía la hoja a un colega Excel no se resuelve la función, ya que su copia de la XLA reside en una ruta absoluta diferente (ya que su nombre de usuario es parte de la ruta absoluta).

Mi creencia hasta ahora fue la excelente "acabada" con esto, siempre y cuando se instaló la XLA como complemento, pero esto no parece ser el caso.

¿Es realmente el caso de que necesito hacer cumplir un camino absoluto idéntico para mi complemento para todos los usuarios? Esto es posible dentro de una sola organización, pero honestamente no puedo creer que esto sea cierto, ya que impide seriamente el intercambio de archivos XLS.

gracias.

¿Fue útil?

Solución

No hay buena manera de hacer esto.Puse mis archivos XLA en un recurso compartido de red en lugar de localmente e instalarlos a través de la ruta UNC.Eso solo funciona para mí porque todos tienen acceso a la participación, que puede no ser el caso para usted.Aquí hay otras alternativas

http:// www.DailyDoseofExcel.com / Archivos / 2008/06/02 / Fixing-Links-to-Udfs-in-Addins /

Otros consejos

Simplemente quito el camino con un submarino como este:

Sub RemoveXlaPath()
'
' Goal: delete the path reference to the add-in, i.e. everything before and including the '!'
' ='C:\Program Files (x86)\Microsoft Office\Office14\LIBRARY\populator.xlam'!famedata(...)
'
    Cells.Replace What:="'C:\*xla*'!", Replacement:="", _
                    LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
                    SearchFormat:=False, ReplaceFormat:=False
End Sub

¿Puede especificar una ruta basada en la variable de entorno?P.ej.%APPDATA%\MyCompany

Lo que he hecho es si le doy un usuario un XLS, tiene en su evento abierto algún código que, instala el XLA como parte de su evento abierto. También desinstala la versión anterior si hay alguna (Borra de eliminación y comando). Este auto distribuye. En teoría podría limpiar cualquier camino. Esto supone que hay un impulso compartido que todos pueden acceder, esto les impide que copian la XLA a la unidad local. Alternativamente, envíeles un correo electrónico a la XLA con XLA en la unidad compartida. Si es posible, no desea una XLA en una unidad local.

Si la XLA debe estar en una unidad local, no estoy seguro de si esto funcionaría, pero un evento XLS en Open Open podría verificar una corrección de rutas e instalar / instalar un XLA, si sabe dónde está. Pero si estaba enviando un correo electrónico a XLs a través de Internet, el evento abierto de la XLS podría verificar si la XLA está disponible y coloca un cuadro de mensaje que le dice al usuario qué hacer: instale este XLA, que sería un archivo adjunto separado. La XLA podría limpiar cualquier ruta como parte de su evento abierto, solo algunas ideas.

Otra posibilidad es que el evento XLA en Open Open puede modificar el XLSS en evento Abrir para que si se distribuye XLS, la XLS podrá verificar si la XLA está disponible. Complicado.

It's a poor oversight that makes add-ins barely manageable for shared use. Other than this, using .XLAM add-ins is a good way to avoid having to have macro-enabled spreadsheets (the shared spreadsheet can be distributed without macros and the macros can reside in an .XLAM)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top