双击Excel中的单元格,在userform上打开该行的源代码文件

双击Excel中的单元格,在userform上打开该行的源代码文件,excel,userform,worksheet,vba,Excel,Userform,Worksheet,Vba,我正在尝试一些东西,我甚至不知道这是否可能 我有大约20份项目进度报告。使用userform的用户正在更新这些项目。 每周一次,我都会运行一些宏,这些宏指向每个宏,复制数据并将它们放在不同工作簿中的项目摘要中。我想要的是能够双击该项目摘要工作簿中任何给定行(大约有200个项目)的第一个单元格,并以用户正在使用的现有用户表单打开该特定项目。但我希望它在源文件中打开,而不是在项目摘要工作表的数据转储中打开 我有办法做到这一点吗 编辑: 我试过这个: Sub Worksheet_BeforeDoubl

我正在尝试一些东西,我甚至不知道这是否可能

我有大约20份项目进度报告。使用userform的用户正在更新这些项目。 每周一次,我都会运行一些宏,这些宏指向每个宏,复制数据并将它们放在不同工作簿中的项目摘要中。我想要的是能够双击该项目摘要工作簿中任何给定行(大约有200个项目)的第一个单元格,并以用户正在使用的现有用户表单打开该特定项目。但我希望它在源文件中打开,而不是在项目摘要工作表的数据转储中打开

我有办法做到这一点吗

编辑:

我试过这个:

Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Cell As Range

If Intersect(Target, Range("A:A")) Is Nothing Then
Else
For Each Cell In Range("E:E")
    If (Cell.Value = "A, B") Then
        Workbooks.Open Filename:= _
            "filepath", Password:="...", ReadOnly:=True
        progressReport.Show

    End If
 Next Cell
 End If

 End Sub

我将根据Range(E:E)的值,对其他20个进度报告中的每一个都这样做。我想要的是,当它打开文件以加载userform时,它会加载一个

中的值的特定报告。在双击事件宏之前使用工作表,并取消任何可能的“单元格内”编辑

Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Not Intersect(Target, Target.Parent.UsedRange, Columns("A")) Is Nothing Then
        'cancel 'in-cell editing'
        Cancel = True

        'load your user form here using target.row
        'example: cells(target.row, "E").value is the value from
        '         column E on the same row as the double-click
        debug.print Target.Row

    End If
End Sub
只能双击单个单元格,因此不可能将多个单元格作为目标


这属于工作表的代码表(例如,右键单击名称选项卡,查看代码);不是标准的模块代码表。

显示您尝试的内容,解释您的数据,以及“任何给定行的第一个单元格”中的内容。@phil652我已编辑了代码。请让我知道这是否会使范围内的每个单元格(“E:E”)更加敏感
您真的想尝试打开1048576工作簿吗?对我来说似乎有点过分。@Jeeped你是对的。。。我只是不知道怎么做。我已经尝试了下面的代码,它部分工作。如何仅加载在userform中双击的A行的数据?要扩展我在下面的回答中所述的内容,如果要将E列中的值放入Textbox1,则
Textbox1.value=cells(target.row,“E”).value
。但是,我看不出这与打开工作簿有什么关系。我不确定您的代码能做什么。你介意帮我理解一下吗?如果你双击一个单元格,它就会触发(aka runs)。如果双击的单元格在工作表的使用范围内且在A列中,则它将取消“单元格内编辑”,并运行其余代码。我已经展示了在何处以及如何使用双击列A的行中的值加载userform。