1

当我使用这个公式时,

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") 

将显示或将是公式栏中的格式?我的问题是我现在如何放置文件名而不只是复制文件名本身而不只是将其粘贴到代码中?

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

例如,您在 msgbox 中输入“123”,工作表的名称现在将变为“Sheet2 123”。消息框已经存在,无需为其创建代码。

4

1 回答 1

2

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

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 IndexingSheets()
    With ThisWorkbook
        .Sheets(1).Range("B3").Formula = _
            "=HYPERLINK(""#'[" & .Name & "]" & .Sheets(2).Name & "'!A5"", _
            ""Jump to Sheet2!A5"")"
        .Sheets(2).Range("A5").Formula = _
            "=HYPERLINK(""#'[" & .Name & "]" & .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
于 2013-05-22T03:00:29.243 回答