更改对话框中粘贴的内容(Microsoft Word)
Ihor希望自动将URL超链接插入到Word文档中。该URL将与一个短语相关联,例如“ click here”。他首先将特定网站的URL复制到剪贴板。
然后,他记录一个宏,该宏将打开“插入超链接”对话框(Ctrl + K),并将剪贴板中的URL粘贴到适当的字段中(Ctrl + V),然后单击“确定”。当他以后运行宏时,每次运行宏时都会给他相同的URL。 Ihor每次运行宏时都希望将另一个URL粘贴到对话框中,但是似乎缺少该操作的方法。
记录宏时,它实际上是关于其功能的文字-它准确记录了您执行的步骤,包括如何填写对话框。解决方案不是寻找将新信息粘贴到对话框中的方法,而是寻找如何创建超链接。
如果在运行宏记录器的情况下插入超链接,将记录以下内容:
Sub Macro1() ' ' Macro1 Macro ' ' ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _ "//", SubAddress:="", ScreenTip:="", TextToDisplay:= _ "click here" End Sub
Ihor想要更改的是超链接的目标,该超链接已分配给Address属性;这就是“粘贴”到对话框的“地址”字段中的内容。为此,您可以以一种简单的方式更改宏,例如:
Sub Macro2() Dim sTemp As String sTemp = "//" ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _ Address:= sTemp, SubAddress:="", ScreenTip:="", _ TextToDisplay:= "click here" End Sub
在本示例中,所有要做的就是删除宏开头的一些不必要的注释,并创建一个字符串变量sTemp,该变量现在包含超链接的目标。然后将此变量分配给Address属性。为了更改目标,只需更改sTemp变量的值即可,并且有许多方法可以完成。
一种方法是使用InputBox函数以这种方式创建自己的对话框:
Sub Macro3() Dim sTemp As String Dim sPrompt As String Dim sTitle As String sPrompt = "Enter the target for the hyperlink" sTitle = "Hyperlink Destination" sTemp = "//" sTemp = InputBox(sPrompt, sTitle, sTemp) ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _ Address:= sTemp, SubAddress:="", ScreenTip:="", _ TextToDisplay:= "click here" End Sub
当然,Ihor提到在他的处理过程中,他实际上将URL复制到剪贴板。如果这是他要使用的过程,则可以在运行宏时根据剪贴板中的内容分配URL。这是您的处理方式:
Sub Macro4() Dim sTemp As String Dim MyData As DataObject Set MyData = New DataObject MyData.GetFromClipboard sTemp = Trim(MyData.GetText(1)) ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, _ Address:= sTemp, SubAddress:="", ScreenTip:="", _ TextToDisplay:= "click here" End Sub
为了以这种方式利用剪贴板,您需要在VBA编辑器中为Microsoft表单设置参考。 (从编辑器的“工具”菜单中选择“引用”。)
同样,请注意,所有这些示例都会修改分配给新超链接的Address属性的内容。您很有可能还希望更改宏以修改分配给TextToDisplay属性的内容。
注意:
如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)上描述的宏,我准备了一个包含有用信息的特殊页面。
_WordTips_是您进行经济有效的Microsoft Word培训的来源。
(Microsoft Word是世界上最流行的文字处理软件。)本技巧(11906)适用于Microsoft Word 2007、2010、2013、2016、2019和Office 365中的Word。 Word的旧菜单界面在这里: