我正在尝试使用工作表的双击事件,在单击双击行中的特定列时,使用值填充userform中的所有文本框。
例如:我有6列
ID Project Approval tool status feedback
1 A1 yes 123 ongoing good
2 B2 no 456 stop bad
当我双击列ID中的任何单元格时,将弹出带有文本框的userform,文本框中填充了所有列(项目,Aprroval,工具,状态,反馈)中双击的行的值。因此,当我双击列ID中的“1”时,用户窗体应弹出文本框值“A1”,“是”,“123”,“正在进行”,“好”。
到目前为止,这是我的代码,我正在尝试双击事件。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, CANCEL As Boolean)
Dim UserForm2 As frm_Update
If Target.Column = 1 Then
Set UserForm2 = New frm_Update
CANCEL = True
With UserForm2
Dim wks As Worksheet
Set wks = ThisWorkbook.Worksheets("Sheet1")
wks.Activate
.txtProject = Cells(Target.Row, 2)
.txtapproval = Cells(Target.Row, 3)
.txttool = Cells(Target.Row, 4)
.txtstatus = Cells(Target.Row, 5)
.txtfeedback = Cells(Target.Row, 6)
Me.Show
End With
End If
End Sub
我使用这个Double click event作为我的问题的参考,但我无法解决问题。我运行代码时,我的用户窗体没有打开。
Me
在工作表的事件例程中指的是工作表,而不是表单。由于工作表没有Show
方法,您应该得到运行时错误。简单地将行更改为.Show
应该显示表单。
为避免此类错误,请始终将Option explicit
放在所有模块的顶部。如果这样做,您将得到编译器错误方法或数据成员未找到