Wie kann ich verhindern, dass Excel den absoluten Pfad zu einem XLA speichert?

StackOverflow https://stackoverflow.com/questions/3308450

  •  26-09-2020
  •  | 
  •  

Frage

Ich habe eine XLA-Datei, die als Excel-Add-In für mehrere Benutzer in der Organisation bereitgestellt werden soll.Meine Absicht ist es, es in einem Verzeichnis im Ordner „Dokumente und Einstellungen“ des Benutzers unter „Anwendungsdaten\MyCompany“ bereitzustellen.(Tatsächlich funktioniert das alles über einen Wrapper, der die neueste Version des XLA lokal kopiert und als Excel-Add-In installiert.)

Wenn ein Benutzer jedoch ein Blatt erstellt, das auf eine in dieser XLA definierte Funktion verweist, scheint Excel den absoluten Pfad der XLA im Funktionsaufruf zu speichern.Wenn der Benutzer das Blatt also an einen Kollegen sendet, kann Excel die Funktion nicht auflösen, da sich seine Kopie der XLA in einem anderen absoluten Pfad befindet (da sein Benutzername Teil des absoluten Pfads ist).

Mein bisheriger Glaube war, dass Excel damit „gerade zurechtkommt“, solange XLA als Add-in installiert wurde, aber das scheint nicht der Fall zu sein.

Ist es wirklich so, dass ich für alle Benutzer einen identischen absoluten Pfad für mein Add-In erzwingen muss?Dies ist innerhalb einer einzelnen Organisation möglich, aber ich kann ehrlich gesagt nicht glauben, dass dies wahr ist, da es die gemeinsame Nutzung von XLS-Dateien ernsthaft behindert.

Danke.

War es hilfreich?

Lösung

Es gibt keinen guten Weg, dies zu tun.Ich setze meine XLA-Dateien auf einen Netzwerkanteil, anstatt lokal und installieren Sie sie über den UNC-Pfad.Das funktioniert nur für mich, weil jeder Zugriff auf die Anteil hat, was für Sie möglicherweise nicht der Fall ist.Hier sind einige andere Alternativen

http:// www.dailydoseofexcel.com / Archive / 2008/06 / 02 / Fixing-Links-to-UDFS-IN-Addins /

Andere Tipps

Ich entferne einfach den Pfad mit einem Sub wie diesem:

generasacodicetagpre.

Können Sie einen auf Umgebungsvariablen basierenden Pfad angeben?Z.B. %APPDATA%\MyCompany

Was ich getan habe, ist, wenn ich einem Benutzer einen XLS angibt, er hat in seinem auf offenen Ereignis einiger Code, der das XLA als Teil seiner auf offenen Ereignisse installiert. Es deinstalliert auch die alte Version, falls vorhanden (Löschen und Befehlsbalken). Dieses Selbst verteilt sich. In der Theorie könnte es alle Wege aufräumen. Dies setzt voraus, dass es ein gemeinsames Laufwerk gibt, an dem jeder zugreifen kann. Dies verhindert, dass sie die XLA zum lokalen Laufwerk kopieren. Alternativ senden Sie ihnen eine Verknüpfung an die XLA mit XLA auf dem gemeinsam genutzten Laufwerk. Wenn möglich, möchten Sie kein XLA auf einem lokalen Laufwerk.

Wenn sich das XLA auf einem lokalen Laufwerk befinden muss - nicht sicher, ob dies funktionieren würde, aber ein XLS auf dem Open-Ereignis könnte ein Fix-Wege überprüfen und eine XLA installieren / installieren - wenn es weiß, wo sein ist. Wenn Sie jedoch ein XLS über das Internet per E-Mail senden, konnte das ON Open Event der XLS prüfen, ob die XLA verfügbar ist, und ein Meldungsfeld aufstellen, das dem Benutzer angibt, was zu tun ist, was zu tun ist - installieren Sie diese XLA, die ein separates Anhang ist. Die XLA konnte alle Wege im Rahmen seiner offenen Ereignisse aufräumen - nur einige Ideen.

Eine andere Möglichkeit ist, dass die XLA auf dem Open Event die XLSS auf dem offenen Ereignis modifizieren kann, sodass, wenn diese XLs verteilt ist, dass die XLS überprüfen kann, ob die XLA verfügbar ist. Knifflig.

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)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top