Pergunta

Eu tenho um XLA ficheiro que está a ser implementado para um número de usuários na organização como um suplemento do Excel.A minha intenção é implantar-lo para um diretório em que o usuário "documents and settings" pasta "Dados de aplicativos\MyCompany".(Na verdade, este é todo o trabalho através de um wrapper que copia a versão mais recente do XLA localmente e instala-lo como um suplemento do Excel).

No entanto, se um usuário cria uma folha que faz referência a uma função definida neste XLA, em seguida, o Excel aparece para armazenar o caminho absoluto do XLA na chamada de função.Assim, se o usuário envia a folha a um colega de trabalho do Excel não consegue resolver a funcionar como sua cópia de XLA reside em um diferente caminho absoluto (como seu nome de usuário é parte do caminho absoluto).

A minha crença até agora foi o Excel "assim se deu" com isso enquanto o XLA foi instalado como um suplemento, mas este não parece ser o caso.

É realmente o caso de que eu preciso para impor um idêntico caminho absoluto para o meu suplemento para todos os usuários?Isso é possível dentro de uma única organização, mas, sinceramente, não posso acreditar que isso é verdade com seriedade, impede o compartilhamento de arquivos XLS.

Obrigado.

Foi útil?

Solução

Não há boa maneira de fazer isso.Eu coloquei meus arquivos XLA em um compartilhamento de rede em vez de localmente e instalá-los através do caminho UNC.Isso só funciona para mim porque todo mundo tem acesso à ação, que pode não ser o caso de você.Aqui estão algumas outras alternativas

http:// www.dailydossoofexcel.com / Archives / 2008/06/02 / fixação-links-para-udfs-in-addins /

Outras dicas

Eu simplesmente remover o caminho com um sub, como esta:

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

Você pode especificar uma variável de ambiente do caminho?E. g. %APPDATA%\MyCompany

O que eu fiz é se eu der um usuário um XLS, ele terá em seu evento aberto algum código que - instala o XLA como parte de seu evento aberto. Também desinstala a versão antiga se houver (excluir e barras de comando). Este auto distribui. Em teoria poderia limpar todos os caminhos. Isso pressupõe que há alguma unidade compartilhada que todos podem acessar, isso os impede copiando o XLA para a unidade local. Alternativamente, envie-os um atalho para o XLA com XLA na unidade compartilhada. Se possível, você não quer um XLA em uma unidade local.

Se o XLA deve estar em uma unidade local - não tenho certeza se isso funcionaria, mas um xls no evento aberto poderia verificar uma correção de quaisquer caminhos e instalar / instalar um XLA - se ele souber onde é. Mas se você estava enviando um e-mail para um XLS pela Internet, o evento Open do XLS poderia verificar se o XLA está disponível e colocar uma caixa de mensagem contando o usuário o que fazer - instale este XLA, que seria um anexo separado. O XLA poderia limpar quaisquer caminhos como parte de seu evento aberto - apenas algumas ideias.

Outra possibilidade é o XLA no evento Open pode modificar o XLSS no evento Abrir para que, se esse XLS for distribuído, o XLS poderá verificar se o XLA está disponível. 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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top