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
在visual basic excel中创建工作表之间的超链接_Excel_Vba - Fatal编程技术网

在visual basic excel中创建工作表之间的超链接

在visual basic excel中创建工作表之间的超链接,excel,vba,Excel,Vba,我用这个公式的时候, Sub IndexingSheets() Sheets(1).Range("B3").Formula = _ "=HYPERLINK(""#" & ThisWorkbook.Sheets(2).Name & "!A5"", ""TextToDisplay"")" Sheets(2).Range("A5").Formula = _ "=HYPERLINK(""#" & ThisWorkbook.Sheets(1).Nam

我用这个公式的时候,

Sub IndexingSheets()
    Sheets(1).Range("B3").Formula = _
    "=HYPERLINK(""#" & ThisWorkbook.Sheets(2).Name & "!A5"", ""TextToDisplay"")"
    Sheets(2).Range("A5").Formula = _
    "=HYPERLINK(""#" & ThisWorkbook.Sheets(1).Name & "!B3"", ""TextToDisplay"")"
End Sub
它创建了一个超链接,但当我单击它时,它显示引用无效。然后,当我在公式栏中更改公式时,我添加了文件名,它起了作用,现在看起来如下所示:

=HYPERLINK("[Book1.xls]'Sheet2 123!A5", "gg")
=HYPERLINK("#Sheet2 123!G20", "gg")
但原来是这样的:

=HYPERLINK("[Book1.xls]'Sheet2 123!A5", "gg")
=HYPERLINK("#Sheet2 123!G20", "gg")
如何更改我在最上面显示的原始代码,以便:

=HYPERLINK("[Book1.xls]'Sheet2 123!A5", "gg") 
将显示或将是公式栏中的格式?我的问题是,我现在如何放置文件名,而不只是复制文件名本身,而不仅仅是将其粘贴到代码中

我只是想澄清一下,有一个消息框说你应该输入工作表的第二个名字。因此,工作表的名称不再只是“Sheet2”


例如,在msgbox“123”中,工作表的名称现在将变成“Sheet2 123”。messagebox已经存在,无需为其创建代码。

试试这个。您需要在图纸名称周围加上单引号,以说明图纸名称中可能存在的空格。如果省略单引号,则图纸名称不得包含任何空格

Sub IndexingSheets()
    With ThisWorkbook
        .Sheets(1).Range("B3").Formula = _
        "=HYPERLINK(""#'" & .Sheets(2).Name & "'!A5"", ""Jump to Sheet2!A5"")"
        .Sheets(2).Range("A5").Formula = _
        "=HYPERLINK(""#'" & .Sheets(1).Name & "'!B3"", ""Jump to Sheet1!B3"")"
    End With
End Sub
要包含工作簿名称(我认为没有必要):

还有一种实现相同目的的替代方法——这一方法也包括工作簿名称:

Sub IndexingSheetsWithFileName()
    With ThisWorkbook

        .Sheets(1).Hyperlinks.Add Anchor:=.Sheets(1).Range("B3"), _
            Address:="", SubAddress:= _
            "'[" & .Name & "]" & .Sheets(2).Name & "'!A5", _
            TextToDisplay:="Jump to Sheet2!A5"

        .Sheets(2).Hyperlinks.Add Anchor:=.Sheets(2).Range("A5"), _
            Address:="", SubAddress:= _
            "'[" & .Name & "]" & .Sheets(1).Name & "'!B3", _
            TextToDisplay:="Jump to Sheet1!B3"

    End With
End Sub

但它说编译错误?好的,让我来测试一下。见下面我的答案。让我知道这是否有效。最后!非常感谢!只要能用就行。终于成功了!非常感谢你!!没问题!不管怎样,我把它加进去了。我有一个问题,如果我不想让代码/公式显示在公式栏上怎么办?例如“跳转到工作表”的文本将仅显示。我可以使用什么代码?我建议使用
工作表\u selection change
事件和
应用程序.GoTo
方法。如果你对此有困难,或者无法解决,请发布一个新问题,如“如何使普通单元格表现为超链接”。