双击时将出现错误的数据

时间:2018-10-12 20:10:27

标签: excel vba excel-vba

为什么当我双击列表框时,数据将显示在前一个列表中?有时,它只是从列表框中得出随机数据。

仅供参考,它将出现在“待收金额(Emp 4)”,“ Acct。Mgr(Emp 5)”,“ Phone(Emp 6)”和“ Email(Emp 7)”上。

这是图像,您可以看得更清楚。

enter image description here

Private Sub lstEmployee_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'dim the variables
Dim i As Integer
On Error Resume Next

'find the selected list item
i = Me.lstEmployee.ListIndex

Dim methodsOfCommunication() As String

Me.Emp1.Value = Me.lstEmployee.Column(0, i)
Select Case Me.lstEmployee.Column(2, i)
    Case "Yes"
        Me.Emp2.Value = True
        Me.Emp3.Value = False
    Case "No"
        Me.Emp2.Value = False
        Me.Emp3.Value = True
End Select

' Reset Methods of Communication checkboxes.
Me.Emp8.Value = False
Me.Emp9.Value = False
Me.Emp10.Value = False
Me.Emp11.Value = False
Me.Emp12.Value = False
' Set Methods of Communication checkboxes.
methodsOfCommunication = Split(Me.lstEmployee.Column(1, i), ", ")
For i = LBound(methodsOfCommunication, 1) To UBound(methodsOfCommunication, 1)
    Select Case methodsOfCommunication(i)
        Case "Whatsapp"
            Me.Emp8.Value = True
        Case "Phone Call"
            Me.Emp9.Value = True
        Case "Facebook"
            Me.Emp10.Value = True
        Case "Email"
            Me.Emp11.Value = True
        Case "SMS"
            Me.Emp12.Value = True
    End Select
Next

Me.Emp4.Value = Me.lstEmployee.Column(3, i)
Me.Emp5.Value = Me.lstEmployee.Column(4, i)
Me.Emp6.Value = Me.lstEmployee.Column(5, i)
Me.Emp7.Value = Me.lstEmployee.Column(6, i)
Me.Emp13.Value = Me.lstEmployee.Column(7, i)
Me.Emp14.Value = Me.lstEmployee.Column(8, i)
Me.Emp15.Value = Me.lstEmployee.Column(9, i)

On Error GoTo 0

End Sub

0 个答案:

没有答案