创建宏以将文本转换为超链接,将显示文本连接到标准格式



我必须为工单项创建大量超链接,其中 URL 中唯一更改的部分是工单 ID。我是新手,大部分 VBA 帮助都是针对 excel 的。我的问题存在于MS-word中,并且难以转移语法。

我希望用户在输入 6 位票证 ID 后调用宏。 理想情况下,宏会自动选择用户键入的最后一个单词,并将其附加到永远不会更改的 url 段。

我尝试录制一个宏,该宏复制键入的最后一个单词,然后将其连接到标准 URL 的末尾。

我可以使用键盘快捷键成功地完成所有操作,所以我认为我会设置好。问题是宏仅使用录制示例中的文本。它还会将我的文本转换为示例文本以显示。

将任何文本转换为我在录音中用作示例的链接。

我不知道如何让 VBA 使用复制的文本来显示文本和 URL 的最后 6 位数字。

请参阅下面的VBA语法

Sub textToHyperlink()
'
Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
Selection.Copy
ChangeFileOpenDirectory _
"/Users/chris/Library/Containers/com.microsoft.Word/Data/Library/Preferences/AutoRecovery/"
ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _
"https://someboringwebsite.com/WorkItem&id=123456", SubAddress:="", ScreenTip:="", _
TextToDisplay:="123456"
End Sub

这可能有效:

Sub textToHyperlink()
'
Dim TicketID As String
TicketID = Selection.Range.Text 
'You may need to clean up TicketID (remove <CR> etc.) before 
'sticking it in the hyperlink. Depends on what's in Selection.
' Not sure what this line does
' ChangeFileOpenDirectory _
"/Users/chris/Library/Containers/com.microsoft.Word/Data/Library/Preferences/AutoRecovery/"
ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _
"https://someboringwebsite.com/WorkItem&id=" & TicketID, SubAddress:="", ScreenTip:="", _
TextToDisplay:=TicketID
End Sub

希望有帮助。

以下是对您在评论中的澄清的回应(我已将其纳入您的问题(。有两种变体

1(遵循您的前提,使用用户输入。请注意,无论它在文本中的哪个位置,这都将采用前面的单词。如果用户可能键入了一个空格(或多个空格(,则从该单词的末尾删除所有空格。(这些代码行被注释掉。

2(您(和用户(可能会发现使用InputBox更简单,以便用户可以直接键入票证ID - 无需担心它在文本,空格或任何内容中的位置。超链接将插入到所选内容中。

Sub textToHyperlink()
'
Dim sID As String
'    Dim rng As word.Range
'
'    Set rng = Selection.Range
'    rng.MoveStart wdWord, -1
'    sID = Trim(rng.Text)
sID = InputBox("Please enter the ticket ID")
ActiveDocument.Hyperlinks.Add anchor:=rng, Address:= _
"https://someboringwebsite.com/WorkItem&id=" & sID, SubAddress:="", ScreenTip:="", _
TextToDisplay:=sID
End Sub

最新更新