Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于模拟Ctrl+单击书签/超链接的VBA宏_Vba_Ms Word - Fatal编程技术网

用于模拟Ctrl+单击书签/超链接的VBA宏

用于模拟Ctrl+单击书签/超链接的VBA宏,vba,ms-word,Vba,Ms Word,我正试图在MicrosoftWord中编写一个VBA宏,以执行与Ctrl+click跟随链接或转到书签相同的操作 我试过SendKeys,但我认为它不适用于鼠标左键单击 实际上,我已经提出了一个部分有效的解决方案,包括使用 Selection.GoTo What:=wdGoToBookmark,Name:=bla但不幸的是,这意味着我无法使用ctrl+

我正试图在MicrosoftWord中编写一个VBA宏,以执行与Ctrl+click跟随链接或转到书签相同的操作

我试过SendKeys,但我认为它不适用于鼠标左键单击

实际上,我已经提出了一个部分有效的解决方案,包括使用 Selection.GoTo What:=wdGoToBookmark,Name:=bla但不幸的是,这意味着我无法使用ctrl+<,因为以前光标所在位置的历史记录似乎没有保存


因此,除了我自己的解决方案,实际上有没有一种方法可以将Ctrl+单击的动作绑定到另一个按钮上?或者有没有一种方法可以编写一个宏来执行相同的操作,包括跟踪光标的历史记录?

下面的代码应该可以执行您想要的操作。将其安装在标准代码模块上

Option Explicit

    Dim ReturnRange As Range

Sub GotoBookmark()
    ' 13 Sep 2017

    With Selection
        If .Hyperlinks.Count Then
            Set ReturnRange = .Range
            .Hyperlinks(1).Follow
        End If
    End With
End Sub

Sub ReturnToLink()
    ' 13 Sep 2017

    If Not ReturnRange Is Nothing Then ReturnRange.Select
End Sub
出于测试目的,请在文档中创建书签和指向它的超链接。选择超链接并运行Sub-GotoBookmark。然后运行过程ReturnToLink返回到您来自的地方。请注意,您可以从任何地方返回,也可以多次返回


您可能希望创建键盘快捷键来调用这两个sub。

下面的代码应该可以满足您的需要。将其安装在标准代码模块上

Option Explicit

    Dim ReturnRange As Range

Sub GotoBookmark()
    ' 13 Sep 2017

    With Selection
        If .Hyperlinks.Count Then
            Set ReturnRange = .Range
            .Hyperlinks(1).Follow
        End If
    End With
End Sub

Sub ReturnToLink()
    ' 13 Sep 2017

    If Not ReturnRange Is Nothing Then ReturnRange.Select
End Sub
出于测试目的,请在文档中创建书签和指向它的超链接。选择超链接并运行Sub-GotoBookmark。然后运行过程ReturnToLink返回到您来自的地方。请注意,您可以从任何地方返回,也可以多次返回


您可能希望创建键盘快捷键来调用这两个sub。

这是否有用?::尝试Selection.Hyperlinks1.Follow。使用marco recorder获取编码提示。以上两条注释仅适用于超链接。我对书签更感兴趣,但由于默认情况下Ctrl+click对这两种方式都有效,所以我提到了这两种方式。您到底希望实现什么?选择一个超链接,运行宏,然后做什么?从逻辑上讲,所选内容应更改为超链接的目标。那么,你想要另一个动作如何触发?将所选内容返回到您来自的位置?这是你的意图吗?我想跟随书签链接,并能够使用Ctrl+<导航回我以前所在的位置。实际上,我只想将Ctrl+click绑定到键盘上的另一个按钮,但由于这似乎不可能,我想尝试复制Ctrl+click行为。按照我在文章中提到的书签链接进行操作是不够的,因为我无法将Ctrl+<返回到上一个位置,所以我显然遗漏了一些内容。这是否有任何用处?::尝试Selection.Hyperlinks1.Follow。使用marco recorder获取编码提示。以上两条注释仅适用于超链接。我对书签更感兴趣,但由于默认情况下Ctrl+click对这两种方式都有效,所以我提到了这两种方式。您到底希望实现什么?选择一个超链接,运行宏,然后做什么?从逻辑上讲,所选内容应更改为超链接的目标。那么,你想要另一个动作如何触发?将所选内容返回到您来自的位置?这是你的意图吗?我想跟随书签链接,并能够使用Ctrl+<导航回我以前所在的位置。实际上,我只想将Ctrl+click绑定到键盘上的另一个按钮,但由于这似乎不可能,我想尝试复制Ctrl+click行为。按照我在文章中提到的书签链接是不够的,因为我无法将Ctrl+<返回到上一个位置,所以我显然错过了一些东西。