VBA,Textbox Vlookup

时间:2015-02-12 08:50:07

标签: vba excel-vba excel

Olla

我正在使用一个名称管理器,其中包含每个部门的员工列表,现在我想在我的代码中查找每个员工的时钟编号。

我从每个部门的Combobox(CB_Department)开始,然后查找每个部门的一系列员工(CB_EName)。然后,我想从excel中的表中查看员工时钟编号,并将其直接输入到userform文本框(TB_ENumber)中。这条路由的原因是因为excel表是从Sql(名称和时钟号)自动更新的,但是在工作表内管理人员工作的部门。

现在的问题是代码适用于第一个员工的部门更改,但是当我更改员工组合框时,文本框不会更新。有些人可以告诉我我错过了什么

到目前为止我必须使用的代码

Sub CB_Department_Change()
Dim strRange As String
If CB_Department.ListIndex > -1 Then
   strRange = CB_Department
   strRange = Replace(strRange, " ", "_")
        With CB_EName
            .RowSource = vbNullString
            .RowSource = strRange
            .ListIndex = 0
        End With

        With TB_ENumber
            .Text = Application.WorksheetFunction.VLookup(CB_EName, Sheet4.Range("A2:B200"), 2, False)
        End With

Else

End If
End Sub

由于

1 个答案:

答案 0 :(得分:0)

感谢Kazjaw

Private Sub CB_Department_Change()

Dim strRange As String
If CB_Department.ListIndex > -1 Then
   strRange = CB_Department
   strRange = Replace(strRange, " ", "_")
        With CB_EName
            .RowSource = vbNullString
            .RowSource = strRange
            .ListIndex = 0
        End With

Else

End If
End Sub


Private Sub CB_EName_Change()

        With TB_ENumber()
            .Text = Application.WorksheetFunction.VLookup(CB_EName, Sheet4.Range("A2:B200"), 2, False)
        End With
End Sub