Domanda

Ho un file XLA che deve essere distribuito in un numero di utenti nell'organizzazione come add-in Excel. La mia intenzione è implementata in una directory nella cartella "Documenti e Impostazioni" dell'utente in "Dati applicazioni \ MyCompany". (In effetti, tutto funziona attraverso un wrapper che copia l'ultima versione di XLA localmente e lo installa come add-in Excel).

Tuttavia, se un utente crea un foglio che fa riferimento a una funzione definita in questo XLA quindi Excel sembra memorizzare il percorso assoluto della XLA nella chiamata della funzione. Pertanto, se l'utente invia il foglio a un collega Excel non riesce a risolvere la funzione in quanto la loro copia della XLA risiede in un altro percorso assoluto (come il loro nome utente è parte del percorso assoluto).

La mia credenza fino ad ora era l'Excel "appena copiato" con questo purché XLA è stato installato come aggiuntivo, ma questo non sembra essere il caso.

È davvero il caso di cui ho bisogno per far rispettare un percorso assoluto identico per il mio componente aggiuntivo per tutti gli utenti? Questo è possibile all'interno di un'unica organizzazione, ma onestamente non posso credere che questo sia vero in quanto impedisce seriamente la condivisione dei file XLS.

Grazie.

È stato utile?

Soluzione

Non c'è un buon modo per farlo.Ho messo i miei file XLA su una condivisione di rete anziché localmente e installarli tramite il percorso UNC.Questo funziona solo per me perché tutti hanno accesso alla condivisione, che potrebbe non essere il caso per te.Ecco alcune altre alternative

http:// www.Dailydoseofexcel.com / Archivi / 2008 / 06/02 / fissaggio-links-to-udfs-in-Aggiungi /

Altri suggerimenti

Ho semplicemente rimosso il percorso con un sub come questo:

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
.

Puoi specificare un percorso basato sulla variabile di ambiente?Per esempio.%APPDATA%\MyCompany

Quello che ho fatto è se dando un utente un XLS, ha nel suo evento aperto un codice che - installa la XLA come parte del suo evento aperto. Disinstalla anche la vecchia versione in caso di eventuali (cancellazione e barre di comando). Questo sé distribuisce. In teoria potrebbe ripulire qualsiasi percorso. Ciò presuppone che ci sia qualche unità condivisa che tutti possono accedere, ciò impedisce loro di copiare la XLA all'unità locale. In alternativa email loro un collegamento a XLA con XLA con XLA sull'unità condivisa. Se possibile, non vuoi una XLA su un'unità locale.

Se la XLA deve essere su un'unità locale - non è sicuro se questo funzionerebbe, ma un XLS su Apri Event potrebbe controllare un corretto eventuali percorsi e installare / installare un XLA - se sa dove è. Ma se stavi inviando un'e-mail a un XLS su Internet, l'evento on aperto dell'XLS potrebbe verificare se XLA è disponibile e inserisci una finestra di messaggio che dice all'utente cosa fare - installare questo XLA, che sarebbe un allegato separato. La XLA potrebbe ripulire qualsiasi percorso come parte del suo evento aperto - solo alcune idee.

Un'altra possibilità è che XLA su Open Event può modificare XLSS su evento aperto in modo che se tale XLS sia distribuito, XLS sarà in grado di verificare se XLA è disponibile. Ingannevole.

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)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top