双击Excel工作表中的事件以填充Userform的所有文本框

问题描述 投票:1回答:1

我正在尝试使用工作表的双击事件,在单击双击行中的特定列时,使用值填充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作为我的问题的参考,但我无法解决问题。我运行代码时,我的用户窗体没有打开。

excel vba excel-vba
1个回答
1
投票

Me在工作表的事件例程中指的是工作表,而不是表单。由于工作表没有Show方法,您应该得到运行时错误。简单地将行更改为.Show应该显示表单。

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

© www.soinside.com 2019 - 2024. All rights reserved.