Variable in MS Word speichern und in der Anwendung für Variable im Hyperlink verwenden?

Variable in MS Word speichern und in der Anwendung für Variable im Hyperlink verwenden?

Ich habe ein Szenario, in dem ich mehr anbiete als20 Hyperlinkseiner VM. Wenn also VMsIP wird geändert, Ich mussmanuell ändernim ganzen Dokument. Gibt es eine Möglichkeit, Variablen wie diese zu speichern?

vm_ip = "ec2-13-211-bla-bla.amazonaws.com"

Anstatt also einen Hyperlink anzugebenec2-13-211-bla-bla.amazonaws.com/swagger-ui.html/food-controller, Ich kann geben{vm_ip}/swagger-ui.html/food-controller

So etwas in der Art. Ich habe mich mit Makros beschäftigt, aber es war verwirrend und ich hatte keine Ahnung, wie es funktioniert.

Antwort1

  1. Dies kann viel komplizierter sein, als es vielleicht scheint, weshalb diese Antwort ziemlich lang ist. Es gibt ein paar wichtige Dinge, die man verstehen muss, und viele Schritte. Meiner Meinung nach kann man sich nicht darauf verlassen, dass ein Endbenutzer dies richtig macht, zumindest nicht ohne eine sehr gute Anleitung. Persönlich denke ich, dass es eine „Programmieraufgabe“ ist, und da es keine ist, die wahrscheinlich jemand sehr oft macht, würde ich sagen, dass es trotzdem eine gute Anleitung braucht.

  2. Wenn Sie nur möchten, dass diese Hyperlinks in Word funktionieren, gibt es zwei Hauptmöglichkeiten, je nachdem, ob diese Hyperlinks bloße Texte oder aktive Hyperlinks sein sollen.

    Wenn Sie sie in Word so einfügen möchten, dass sie funktionieren, wenn Sie das Dokument als HTML oder PDF speichern, wird dies in dieser Antwort nicht behandelt und Sie sollten Ihre Frage so ändern, dass diese Anforderung berücksichtigt wird. Außerdem kann die hier beschriebene Feldcodierung nur in Desktopversionen von Word verwendet werden (sie funktioniert möglicherweise auch in einer der Web- oder „Geräte“-Versionen, aber als ich das letzte Mal nachgesehen habe, funktionierten diese Versionen nicht wirklich gut mit Feldcodes.

  3. Wenn Sie also möchten, dass diese Links Texte in Word sind, die Word nicht als aktive Links behandelt (z. B. könnten sie in Ihrem Dokument stehen, sodass Benutzer den Linktext woanders hin kopieren können), können Sie dies mithilfe von SET- und Lesezeichenfeldern tun.

    Wenn Sie beispielsweise nur eine „Basisadresse“ wie „ec2-13-211-bla-bla.amazonaws.com“ haben, die Sie an vielen Stellen wiederverwenden, möglicherweise mit zusätzlichen Adressinformationen, können Sie Folgendes verwenden:

    { SET base1 "ec2-13-211-bla-bla.amazonaws.com" }

    am Anfang Ihres Dokuments (eigentlich kann die Kopfzeile der ersten Seite ein sicherer Ort sein, um versehentliches Löschen zu vermeiden). Dann benötigen Sie gemäß Ihrem Beispiel ein REF-Feld:

    { REF base1 }/swagger-ui.html/food-controller

    (Das Weglassen des REF hat tatsächlich einen Vorteil):

    { base1 }/swagger-ui.html/food-controller

    Alle { } müssen die speziellen Feldcode-Klammernpaare sein, die Sie mit Strg-F9 in der Windows-Desktopversion von Word einfügen können.

    Soweit ich weiß, verhindert die Aufteilung der vollständigen URL in ein REF-Feld und einen einfachen Text, dass Word versucht, den resultierenden Linktext in ein anklickbares HYPERLINK-Feld umzuwandeln.

    Wenn Sie „ec2-13-211-bla-bla.amazonaws.com“ in etwas anderes ändern müssen, z. B. vielleicht nur in „ec2-13-211-new-bla-bla.amazonaws.com“, ändern Sie diesen Text im SET-Feld, aktualisieren Sie das SET-Feld (auswählen und F9 drücken) und aktualisieren Sie anschließend alle anderen Felder (z. B. Strg-A, F9).

    Wenn Sie etwas möchten, das nicht so leicht versehentlich gelöscht werden kann wie ein SET-Feld, können Sie eine benutzerdefinierte Dokumenteigenschaft erstellen und verwenden. In Word 2016/2019/365 beispielsweise:

    a. Gehen Sie zu Datei->Info

    b. Klicken Sie auf das Dropdown-Menü „Eigenschaften“ (oben in der rechten Spalte).

    c. Klicken Sie auf Erweiterte Eigenschaften

    d. Klicken Sie auf die Registerkarte „Benutzerdefiniert“

    e. Geben Sie im Textfeld „base1“ ein.

    f. Stellen Sie sicher, dass im Feld Typ „Text“ ausgewählt ist

    Geben Sie beispielsweise in das Feld „Wert“ ec2-13-211-bla-bla.amazonaws.com ein.

    h. Stellen Sie sicher, dass das Kontrollkästchen „Link zum Inhalt“ deaktiviert ist.

    i. Klicken Sie auf OK

    Dann ist die Feldcodierung, die Sie für den Link benötigen,

    { DOCPROPERTY base1 }/swagger-ui.html/food-controller

    Um die Links zu aktualisieren, gehen Sie zurück in das Dialogfeld „Benutzerdefinierte Eigenschaft“, ändern Sie den Wert der Eigenschaft „Demo1“, wählen Sie dann den Dokumenttext aus und aktualisieren Sie alle Felder im Dokument (erneut Strg-A, F9).

    Wenn Sie mehrere verschiedene „Basisadressen“ haben, benötigen Sie entweder mehrere SET-Felder oder mehrere benutzerdefinierte Dokumenteigenschaften, z. B. mit den Namen base1, base2, base3 oder was auch immer.

  4. Wenn Sie ein anklickbares Hyperlink-Feld möchten, wird es ein wenig komplizierter, denn dann müssen Sie Ihr REF-Feld in ein HYPERLINK-Feld einbetten, und zwar wie folgt:

    { HYPERLINK "{ base1 }/swagger-ui.html/food-controller" }

    Wieder,alledie { } müssen die speziellen Strg-F9-Feldklammern sein, nicht die, die man auf der Tastatur eingeben kann

    Es gibt jedoch zwei Probleme:

    a. Der Anzeigetext wird festgelegt, wenn Word das HYPERLINK-Feld zum ersten Mal erstellt (oder wenn Sie es zum ersten Mal aktualisieren). Darüber hinaus wird er so festgelegt, dass er mit dem anfänglichen „Linktext“ übereinstimmt, den Sie angegeben haben.

    b. Word neigt dazu, das REF-Feld aufzulösen (d. h. das Feld durch sein Ergebnis zu ersetzen), wenn Sie das Dokument speichern, schließen und erneut öffnen. An diesem Punkt können Sie also die Basisadresse nicht mehr ändern und die Hyperlinks aktualisieren.

    (b) werden Sie wahrscheinlich nicht bemerken, wenn Sie mit einem Hyperlink-Feld experimentieren, denn was Word anscheinend daran hindert, das REF-Feld aufzulösen, ist ein Lesezeichen (das Sie manuell oder mithilfe eines SET-Felds einfügen können) irgendwo im HYPERLINK-Feld. Da Word an der Einfügemarke ein verstecktes Lesezeichen namens _GoBack einfügt, wenn das Letzte, was Sie vor dem Schließen des Dokuments getan haben, das Bearbeiten eines HYPERLINK-Felds war,DasDie verschachtelten Felder des Felds bleiben beim erneuten Öffnen wahrscheinlich erhalten.

    Der Trick, um zu verhindern, dass HYPERLINK-Felder ihre verschachtelte Codierung verlieren, besteht darin, sicherzustellen, dass jedes Feld ein Lesezeichen enthält. Sie können dies tun, indem Sie in jeden HYPERLINK ein SET-Feld mit einem anderen Namen einfügen, wie folgt:

    { HYPERLINK "{ base1 }/swagger-ui.html/food-controller" { SET save1 " " } } { HYPERLINK "{ base1 }/swagger-ui.html/etwas-anderes" { SET save2 " " } }

    oder Sie können versuchen, mit folgendem Code automatisch einen neuen Lesezeichennamen für jedes Hyperlink-Feld zu generieren:

    { HYPERLINK "{ base1 }/swagger-ui.html/food-controller" { SET "speichern{ SEQ speichern }" " " } } { HYPERLINK "{ base1 }/swagger-ui.html/something-else" { SET "speichern{ SEQ speichern }" " " } }

    (NB, ich glaube, diese Idee entstandHier. Die Tatsache, dass es auf einem „Trick“ beruht, bedeutet, dass Microsoft es leicht durch eine Softwareänderung untergraben könnte, aber im Moment scheint es zu funktionieren.)

    Sie sollten in der Lage sein, entweder SET/REF-Felder oder den Ansatz mit benutzerdefinierten Dokumenteigenschaft für den Teil { base1 } zu verwenden, wie oben beschrieben.

    Und schließlich: Was ist mit Problem (a), also dem „Anzeigetext“ des Links?

    Dies ist tatsächlich etwas schwieriger zu lösen.

    A. Angenommen, Sie möchten einen "Anzeigetext", der unabhängig vom "Linktext" ist - zum Beispiel, wenn der Anzeigetext

    mein Anzeigetext

    dann würde ich zuerst den Hyperlink erstellen, den Sie verwenden möchten, z. B.

    { HYPERLINK "{ base1 }/swagger-ui.html/food-controller" { SET save1 " " } }

    Fügen Sie dann dort, wo Sie den Hyperlink eigentlich haben möchten, einen Hyperlink ein, der den gewünschten Anzeigetext anzeigt. Eine Möglichkeit besteht darin, ein HYPERLINK-Feld manuell einzufügen, z. B.

    • Verwenden Sie Strg+F9, um ein Paar Feldcodeklammern { } einzufügen.

    • Geben Sie darin HYPERLINK „mein Anzeigetext“ ein.

    • Wählen Sie das Feld aus und aktualisieren Sie das Ergebnis mit F9. Das Ergebnis sollte den gewünschten Text anzeigen.

    • Wählen Sie den gesamten Text des anderen Felds aus und kopieren Sie ihn HYPERLINK "{ base1 }/swagger-ui.html/food-controller" { SET save1 " " }

    • Wählen Sie HYPERLINK „mein Anzeigetext“ und fügen Sie den anderen Code ein, um ihn zu ersetzen

    • Aktualisieren Sie den Feldwert.

    Es gibt dabei ein Problem, das möglicherweise deutlich wird, wenn Sie „B“ durchlesen. Ich werde es am Ende erklären.

    B. Wenn Sie stattdessen möchten, dass der Anzeigetext mit dem Linktext übereinstimmt, müssen Sie auf einen anderen Trick zurückgreifen.

    Nehmen wir an, Sie haben diese Codierung verwendet

    { SET base1 "ec2-13-211-bla-bla.amazonaws.com" }
    
    { HYPERLINK "{ base1 }/swagger-ui.html/food-controller" { SET save1 " " } }
    

    Dann müssen Sie Folgendes tun:löschendas Lesezeichen „base1“ und aktualisieren Sie dann die HYPERLINK-Felder. An diesem Punkt sollten Sie sehen, dass das HYPERLINK-Feldergebnis einen Fehler wie diesen anzeigt (in der englischsprachigen Version von Word):

    Error! Hyperlink reference not valid.
    

    Dadurch wird der Anzeigetext scheinbar zurückgesetzt. Sie können jetzt das Base1-Lesezeichen mit der gewünschten Adresse neu erstellen und alle HYPERLINK-Felder erneut aktualisieren.

    Wenn Sie SET-Felder und REF-Felder verwenden, müssen Sie das SET-Feld nicht löschen. Sie ändern das SET in SEQ:

    { SET base1 "ec2-13-211-bla-bla.amazonaws.com" }
    

    Zu

    { SEQ base1 "ec2-13-211-bla-bla.amazonaws.com" }
    

    Aktualisieren Sie dann das Feld, wodurch das Lesezeichen zerstört wird.

    Nachdem Sie die Hyperlinks aktualisiert haben, ändern Sie SEQ wieder in SET und ändern die Adresse, z. B. so, dass Sie

    { SET base1 "ec2-13-211-new-bla-bla.amazonaws.com" }
    

    Aktualisieren Sie dann das Feld und anschließend alle HYPERLINK-Felder.

    Das Gleiche mit benutzerdefinierten Dokumenteigenschaften zu tun, ist wahrscheinlich etwas umständlicher, da Sie die Eigenschaften in einem einzigen Schritt umbenennen können. Das Beste, was Sie wahrscheinlich tun können, ist, die Eigenschaft in der Liste auszuwählen, den Namen zu ändern und auf Hinzufügen zu klicken. Dadurch wird tatsächlich eine neue Eigenschaft erstellt. Löschen Sie die alte, aktualisieren Sie die HYPERLINK-Felder, gehen Sie dann zurück und erstellen Sie die benötigten Eigenschaftsnamen und -werte neu.

    Als letzte Anmerkung: Wenn Sie tatsächlich Ansatz "A" benötigen, bei dem sich der Anzeigetext nicht ändert, sollten Sienichttun Sie nichts, was den Wert des Lesezeichens „base1“ löscht. Wenn Sie das tun, wird der Anzeigetext zurückgesetzt und Sie müssen wahrscheinlich ein HYPERLINK-Feld erneut einfügen, um den gewünschten Text wiederherzustellen. Nicht gut.

Antwort2

Wenn Sie nur einen Wert festlegen möchten, können Sie verwenden, was @yokki gesagt hat.

Für Hyperlinks stellt Word eine „Hyperlink-Basis“ bereit. Wenn Sie also „swagger-ui.html/food-controller“ als Hyperlink angeben, wird {$hyperlink_base}/swagger-ui.html/food-controller verwendet. Wenn Sie Hyperlinks anderer Websites verwenden möchten und keine „Hyperlink-Basis“ verwenden möchten, verwenden Sie die vollständige URL.

Wie stelle ich eine „Hyperlink-Basis“ ein?

  1. Gehe zum Menüband „Datei“
  2. Rechts oben "Eigenschaften"
  3. Klicken Sie darauf und wählen Sie „Erweiterte Eigenschaften“.
  4. Nur auf der Registerkarte „Zusammenfassung“, das letzte Feld enthält „Hyperlink-Basis“.

In meinem Fall habe ich es auf „ec2-13-211-bla-bla.amazonaws.com“ eingestellt.

Also, alle meine Links, bei denen ich den relativen Pfad angegeben habe, nicht die ganze URL,

Es benötigt „ec2-13-211-bla-bla.amazonaws.com/swagger-ui.html/food-controller“.

Wenn ich also die IP ändern muss, aktualisiere ich einfach die „Hyperlink-Basis“.

verwandte Informationen