如何在Excel中的整个工作簿上运行双击子过程

时间:2012-07-02 00:49:42

标签: excel-vba vba excel

我希望能够双击第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

1 个答案:

答案 0 :(得分:0)

您的代码位于特定工作表的3模块中。

要将其应用于整个工作簿,请将代码转移到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