在 MS Word 中儲存變數並在超連結中的變數應用程式中使用它?

在 MS Word 中儲存變數並在超連結中的變數應用程式中使用它?

我有一個場景,我提供的超過20 個超連結虛擬機的。所以,如果虛擬機IP 被更改, 我需要手動更改整個文檔。有什麼方法可以儲存像這樣的變數

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

所以,不要給超鏈接ec2-13-211-bla-bla.amazonaws.com/swagger-ui.html/food-controller, 我能給{vm_ip}/swagger-ui.html/food-controller

像這樣的東西。我正在研究宏觀,但它很混亂,不知道它是如何運作的。

答案1

  1. 這可能比看起來要複雜得多,這就是為什麼這個答案相當長的原因。有一些關鍵的事情需要理解,並且有很多步驟。在我看來,這不是你可以依賴最終用戶正確完成的事情,至少在沒有一套非常好的說明的情況下是如此。就我個人而言,我認為這是一項「程式設計」任務,並且由於它不是任何人可能經常做的任務,因此我認為它仍然需要一套好的說明。

  2. 如果您只想讓這些超連結在 Word 中運作,則有兩種主要可能性,具體取決於您希望這些超連結只是文字還是活動超連結。

    如果您想將它們插入到 Word 中,以便在將文件儲存為 HTML 或 PDF 時它們可以工作,則此答案不涵蓋這一點,您應該修改您的問題以包含該要求。此外,此處描述的欄位編碼只能在Word 的桌面版本中使用(它也可能在Web 或「裝置」版本之一中使用,但上次我查看此版本時,這些版本並不能很好地與字段代碼配合使用。

  3. 因此,如果您希望這些連結是Word 中的文本,而Word 不會將其視為活動連結(例如,它們可能位於您的文件中,以便人們可以將連結文本複製到其他位置),那麼您可以使用SET 和書籤來執行此操作欄位。

    例如,如果您只有一個“基本”地址,例如“ec2-13-211-bla-bla.amazonaws.com”,您可以在許多地方重複使用該地址,也許還有其他地址信息,您可以使用

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

    在文件的開頭(實際上,在第一頁頁眉中可以是放置它的更安全的位置,以避免意外刪除)。然後按照您給出的範例,您需要一個 REF 欄位:

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

    (省略 REF 其實有一個優點):

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

    所有 { } 都必須是特殊欄位程式碼大括號對,您可以在 Windows 桌面版本的 Word 上使用 ctrl-F9 插入它們。

    據我所知,將完整 URL 分為 REF 欄位和一些純文字可以防止 Word 嘗試將產生的連結文字轉換為可點擊的超連結欄位。

    當您需要將“ec2-13-211-bla-bla.amazonaws.com”更改為其他內容時,例如可能只是“ec2-13-211-new-bla-bla.amazonaws.com”,您可以修改它SET 欄位中的文本,更新SET 欄位(選擇並按F9),然後更新所有其他欄位(例如ctrl-A、F9)。

    如果您想要比 SET 欄位更難意外刪除的內容,您可以建立並使用自訂文件屬性。例如,在Word 2016/2019/365中,

    A。前往文件->訊息

    b.按一下「屬性」下拉清單(位於右欄頂部)

    C。點選進階屬性

    d.按一下自訂選項卡

    e.在文字方塊中輸入“base1”

    F。在“類型”方塊中,確保選擇“文字”

    G。在值框中,輸入 ec2-13-211-bla-bla.amazonaws.com

    H。確保“內容連結”框未被選中

    我。按一下“確定”

    那麼連結所需的字段編碼是

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

    要更新鏈接,您需要返回到“自訂屬性”對話框,更改 demo1 屬性的值,然後選擇文檔文字並更新文檔中的所有欄位(再次按 ctrl-A、F9)。

    如果您有多個不同的“基底位址”,那麼您需要多個 SET 欄位或多個自訂文件屬性,例如稱為 base1、base2、base3 或其他名稱。

  4. 如果您想要一個可點擊的超連結字段,那麼它會變得有點複雜,因為您必須將 REF 字段嵌套在 HYPERLINK 字段中,如下所示:

    { 超連結「{base1}/swagger-ui.html/food-controller」}

    再次,全部{ } 必須是那些特殊的 ctrl-F9 字段大括號字符,而不是您可以在鍵盤上鍵入的字符

    但有兩個問題:

    A。當 Word 首次建立超連結欄位(或首次更新它),顯示文字是固定的。此外,它被固定為與您提供的初始「連結文字」相同。

    b.當您儲存、關閉並重新開啟文件時,Word 傾向於解析 REF 欄位(即用其結果取代該欄位)。因此,此時您將失去修改基底位址和更新超連結的能力。

    如果您嘗試使用超連結字段,您可能不會注意到 (b),因為似乎阻止 Word 解析 REF 字段的是在 HYPERLINK 字段中的某處有一個書籤(您可以手動插入,或使用 SET 字段) 。由於 Word 會在插入點插入一個名為 _GoBack 的隱藏書籤,因此如果您在關閉文件之前所做的最後一件事是編輯超連結字段,當您重新開啟時,欄位的嵌套欄位可能會被保留。

    因此,防止 HYPERLINK 欄位遺失嵌套編碼的技巧是確保每個欄位都有一個書籤。您可以透過在每個超連結中插入具有不同名稱的 SET 欄位來實現此目的,如下所示:

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

    或者您可以嘗試使用以下編碼自動為每個超連結欄位產生新的書籤名稱:

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

    (注意,我相信這個想法起源於這裡。事實上,它依賴於一種“技巧”,這意味著微軟可以通過軟體更改輕鬆地破壞它,但目前看來它是有效的。

    您應該能夠對 { base1 } 部分使用 SET/REF 欄位或自訂文件屬性方法,如上所述。

    最後,問題(a),即連結的「顯示文字」呢?

    這個問題其實比較難解決。

    A. 假設您想要一個獨立於「連結文字」的「顯示文字」 - 例如,如果您希望顯示文字為

    我的顯示文字

    然後首先,我將創建您最終要使用的超鏈接,例如

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

    然後,在您實際需要超連結的位置插入顯示所需顯示文字的超連結。一種方法是手動插入超連結字段,例如

    • 使用 ctrl-F9 插入一對字段程式碼大括號 { }

    • 在裡面輸入超連結“我的顯示文字”

    • 選擇該欄位並使用 F9 更新其結果。結果應該會顯示您想要的文本

    • 選取並複製該其他欄位的整個文字 HYPERLINK "{ base1 }/swagger-ui.html/food-controller" { SET save1 " " }

    • 選擇超連結“我的顯示文字”並貼上其他代碼以替換它

    • 更新字段值。

    如果你通讀“B”,這個問題可能會變得明顯。我會在最後解釋。

    B. 相反,如果您希望顯示文字與連結文字相同,則必須依靠另一個技巧。

    假設您使用了這個編碼

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

    那你要做的就是刪除「base1」書籤,然後更新 HYPERLINK 欄位。此時,您應該會看到 HYPERLINK 欄位結果顯示如下錯誤(在 Word 的英文版本中):

    Error! Hyperlink reference not valid.
    

    這似乎重置了顯示文字。現在,您可以使用所需的地址重新建立 base1 書籤,並再次更新所有超連結欄位。

    當您使用 SET 欄位和 REF 欄位時,不必刪除 SET 欄位。將 SET 更改為 SEQ:

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

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

    然後更新該字段,這會破壞書籤。

    更新超連結後,將 SEQ 更改回 SET 並修改地址,例如,這樣您就可以了

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

    然後更新該字段,然後更新所有超連結字段。

    使用自訂文件屬性執行相同的操作可能會有點尷尬,因為您可以在一個步驟中重新命名屬性。您可以做的最好的事情就是在清單中選擇屬性,更改名稱,然後按一下「新增」。這實際上創建了一個新的屬性。刪除舊的,更新 HYPERLINK 字段,然後返回並重新建立您需要的屬性名稱和值。

    作為最後的觀察,如果您確實需要方法“A”,其中顯示文字不會改變,您應該不是執行任何刪除「base1」書籤值的操作。如果這樣做,這將重置顯示文本,並且您可能必須重新插入超連結欄位來重新建立您想要的文字。不好。

答案2

如果只是想設定值,那麼可以使用@yokki所說的話。

對於超鏈接,word提供了“超鏈接庫”。因此,如果您在超連結中給予“swagger-ui.html/food-controller”,則它將採用 {$hyperlink_base}/swagger-ui.html/food-controller。如果您想使用其他一些網站的超連結並且不想使用“超連結庫”,請使用完整的 URL。

如何設定“超連結基數”?

  1. 轉到“檔案”功能區
  2. 右側頂部“屬性”
  3. 單擊它並選擇“高級屬性”。
  4. 僅在「摘要」標籤上,最後一個欄位包含「超連結庫」。

就我而言,我將其設定為“ec2-13-211-bla-bla.amazonaws.com”。

所以,我給的所有連結都是相對路徑,而不是整個 URL,

它需要“ec2-13-211-bla-bla.amazonaws.com/swagger-ui.html/food-controller”。

所以,如果我需要更改IP,我只需更新“超連結庫”即可。

相關內容