0

列 1 の任意の行をダブルクリックして、その行に対応する別のスプレッドシートを開くことができるようにしたいと考えています。1 つのシートで作業していますが、ワークブック全体で作業する方法がわかりません。助けてください

Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim fpath As String
    Dim fname As String
    Dim Tname As String
    Dim i As Integer

    Tname = ActiveSheet.Name

    If Target.Column = 1 Then
        If Target.Cells.Count > 1 Then Exit Sub
            i = Target.Column

            fpath = "Q:\Construction\Road\Patrols\" & Tname & "\"

            Select Case i
                Case 1: fname = ActiveCell.Value & ".xlsx"
            End Select

            If Dir(fpath & fname) = vbNullString Then
                MsgBox ("The file does not exist")
            Else
                ThisWorkbook.FollowHyperlink fpath & fname
            End If
        End If
    End If
End Sub
4

1 に答える 1

0

コードは、特定のワークシートの the3 モジュールにあります。

ワークブック全体に適用するには、コードをThisWorkbookモジュールにシフトし、Workbook_SheetBeforeDoubleClickイベントを使用します

いくつかの最適化を含む改訂されたコード

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
    Dim fPath As String

    If Target.Column = 1 Then
        fPath = "Q:\Construction\Road\Patrols\" & Sh.Name & "\" & Target.Value & ".xlsx"
        If Dir(fPath) = vbNullString Then
            MsgBox ("The file does not exist")
        Else
            ThisWorkbook.FollowHyperlink fPath
        End If
    End If
End Sub
于 2012-07-02T01:24:44.447 に答える