excel工作表列中的双击事件以填充用户窗体的所有文本框

时间:2018-09-18 11:21:11

标签: excel vba excel-vba

我试图通过双击工作表中的特定列来使用工作表的双击事件在用户窗体中的所有文本框中填充值。

  

例如:我有6列

ID Project  Approval  tool  status  feedback 
1   A1         yes    123   ongoing  good   
2   B2         no     456   stop     bad

当我双击列ID中的任何单元格时,将弹出带有文本框的用户窗体,并在该文本框中填充来自所有列(项目,审批,工具,状态,反馈)的值的文本框单击。因此,当我双击列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作为我的问题的参考,但是我无法解决问题。运行代码时,我的用户窗体无法打开。

1 个答案:

答案 0 :(得分:1)

工作表的事件例程中的

Me是指工作表,而不是 form 。由于工作表没有Show方法,因此应该出现运行时错误。 只需将行更改为.Show即可显示表单。

为避免此类错误,请始终将Option explicit放在所有模块的顶部。如果这样做,则会出现编译器错误找不到方法或数据成员