Vba 创建宏,将文本转换为超链接,将显示文本连接到标准格式
我必须为票证项目创建大量的超链接,其中URL中唯一更改的部分是票证ID。我对此不熟悉,VBA帮助的大部分内容都是针对excel的。我的问题存在于MS word中,很难转换语法 我希望用户在输入6位票证ID后调用宏。理想情况下,宏将自动选择用户键入的最后一个单词,并将其附加到永不更改的url段 我试图录制一个宏,该宏复制键入的最后一个单词,然后将其连接到标准URL的末尾 我可以成功地用键盘快捷键做任何事情,所以我想我会被设置好的。问题是宏只使用录制示例中的文本。它还将要显示的文本转换为示例文本 将任何文本转换为我在录音中用作示例的链接 我不知道如何让VBA使用复制的文本来显示文本和URL的最后6位数字 请参见下面的VBA语法Vba 创建宏,将文本转换为超链接,将显示文本连接到标准格式,vba,hyperlink,ms-word,Vba,Hyperlink,Ms Word,我必须为票证项目创建大量的超链接,其中URL中唯一更改的部分是票证ID。我对此不熟悉,VBA帮助的大部分内容都是针对excel的。我的问题存在于MS word中,很难转换语法 我希望用户在输入6位票证ID后调用宏。理想情况下,宏将自动选择用户键入的最后一个单词,并将其附加到永不更改的url段 我试图录制一个宏,该宏复制键入的最后一个单词,然后将其连接到标准URL的末尾 我可以成功地用键盘快捷键做任何事情,所以我想我会被设置好的。问题是宏只使用录制示例中的文本。它还将要显示的文本转换为示例文本 将
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
Sub textToHyperlink()
'
Dim TicketID作为字符串
TicketID=Selection.Range.Text
'您可能需要在
'将其粘贴在超链接中。取决于选择的内容。
“不知道这行是干什么的
'ChangeFileOpenDirectory_
“/Users/chris/Library/Containers/com.microsoft.Word/Data/Library/Preferences/AutoRecovery/”
ActiveDocument.Hyperlinks.Add锚定:=选择范围,地址:=_
"https://someboringwebsite.com/WorkItem&id=&TicketID,子地址:=“”,屏幕提示:=“”_
TextToDisplay:=TicketID
端接头
希望这能有所帮助。以下是对您在评论中澄清的回应(我已将其纳入您的问题中)。有两种变体 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
非常感谢你!我比我想象的要近。我所做的只是在定义TicketID之前添加“Selection.HomeKey Unit:=wdLine,Extend:=wdExtend”。这会自动高亮显示光标左侧的单词。将此宏映射到快捷键将节省大量时间