双击 Excel 中的一个单元格,在用户窗体上打开该行的源文件
Double clicking on a cell in Excel, open source file of that line on userform
我正在尝试一些东西,我什至不知道它是否可行。
我有大约 20 个项目进度报告。这些项目正在由使用用户表单的用户更新。
每周一次,我有一些宏 运行 去它们每个,复制数据并将它们放在不同工作簿中的项目摘要中。我想要的是能够双击该项目摘要工作簿中任何给定行(大约有 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 个进度报告中的每一个执行此操作。我想要的是,当它打开文件以加载用户窗体时,它会加载 A
中值的特定报告
使用 Worksheet_BeforeDoubleClick 事件宏并在它发生之前取消任何可能的 'in-cell' 编辑。
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
您只能双击单个单元格,因此不可能将多个单元格作为目标。
这属于作品sheet的代码sheet(例如右键单击名称选项卡,查看代码);不是标准模块代码 sheet.
我正在尝试一些东西,我什至不知道它是否可行。
我有大约 20 个项目进度报告。这些项目正在由使用用户表单的用户更新。 每周一次,我有一些宏 运行 去它们每个,复制数据并将它们放在不同工作簿中的项目摘要中。我想要的是能够双击该项目摘要工作簿中任何给定行(大约有 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 个进度报告中的每一个执行此操作。我想要的是,当它打开文件以加载用户窗体时,它会加载 A
中值的特定报告使用 Worksheet_BeforeDoubleClick 事件宏并在它发生之前取消任何可能的 'in-cell' 编辑。
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
您只能双击单个单元格,因此不可能将多个单元格作为目标。
这属于作品sheet的代码sheet(例如右键单击名称选项卡,查看代码);不是标准模块代码 sheet.