
我怎麼才能使一個單字的每個實例成為我計算機上文件的超連結。
我已經設法用這個詞的一個實例來做到這一點,但重複這一點非常耗時,所以我希望程式本身可以做到這一點。
我還想在文件中使用 %windir% 和 %userprofile% 系統變數。
這是我嘗試過的:
%windir%\system32\shell32.dll
然而,這被 Openoffice 取代(並失敗),如下所示:
“%25windir%25\system32\shell32.dll”
如果我加上雙引號,openoffice 會在路徑中加入另一對雙引號,這也會使 Windows 找不到該檔案。
我查看了“編輯”>“文件和替換”,但沒有看到任何選項可以用文件的超連結替換單字的所有實例,同時保持單字相同。
答案1
首先,選擇您建立的現有連結並複製它。然後,運行此宏,它將查找所有出現的“TheWordToLink”並將連結貼到這些位置。
Sub PasteHyperlinks
Dim vDescriptor, vFound, oVC
Dim document, dispatcher
oVC = ThisComponent.CurrentController.ViewCursor
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
vDescriptor = ThisComponent.createSearchDescriptor()
With vDescriptor
.SearchString = "TheWordToLink"
.SearchWords = True
.SearchCaseSensitive = False
End With
vFound = ThisComponent.findFirst(vDescriptor)
Do While Not IsNull(vFound)
oVC.gotoRange(vFound, False)
dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())
vFound = ThisComponent.findNext( vFound.End, vDescriptor)
Loop
End Sub
搜尋和取代代碼取自第 7.14 節Andrew Pitonyak 的巨集文檔。
就環境變數而言,這需要更困難的解決方案。即從連結中呼叫宏,然後宏將對檔案執行系統呼叫。如果您使用的是基本版:
- 看https://forum.openoffice.org/en/forum/viewtopic.php?f=45&t=53609了解如何使超連結呼叫巨集。
- 看在 OpenOffice 中建立自動鏈接用於尋找和建立超連結的程式碼。
- 看https://forum.openoffice.org/en/forum/viewtopic.php?f=29&t=25047對於在路徑中使用環境變數的巨集。
- 看https://forum.openoffice.org/en/forum/viewtopic.php?f=44&t=7918用於系統調用。