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

が表示されますか、それとも数式バーの形式になりますか? 私の問題は、ファイル名自体をコピーするだけでなく、コードに貼り付けるだけでなく、ファイル名を今すぐ配置するにはどうすればよいですか?

シートの2番目の名前を入力する必要があるというメッセージボックスがあることを明確にしたいだけです。そのため、シートの名前は単なる「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

そして、同じことを達成する別の方法 - これには Workbook 名も含まれます。

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 に答える