如何在文本框中输入员工ID时填充员工姓名

时间:2017-04-26 01:37:05

标签: excel excel-vba login vba

使用Excel和宏的员工登录系统。 我正在使用一种非常简单的技术,如果是,那么"

我想在输入ID时显示员工姓名。 我使用了非常简单的代码:

Dim CM As Boolean
Dim UserRange As Range
Dim x As Range
'EASY
Private Sub cmdClear_Click()

txtEmpID.Value = ""
txtName.Value = ""
txtEmpID.SetFocus

End Sub

Private Sub cmdLogin_Click()

End Sub

Private Sub txtEmpID_Change()

'If txtEmpID.Value = "111" Then
'txtName.Value = "Ryan"
'
'ElseIf txtEmpID.Value = "222" Then
'txtName.Value = "Tim"
'
'End If

End Sub

Private Sub UserForm_activate()

Do
If CM = True Then Exit Sub
TextBox1 = Format(Now, "hh:mm:ss")
DoEvents
Loop

Set UserRange = Sheets("Sheet1").Range("B:B")

For Each x In UserRange.Cells
    If x.Value = txtEmpID.Text Then

    x.Offset(1, 0) = txtName.Value
    End If


    Exit For
    Next x

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
CM = True
End Sub

但是我想要一张包含员工姓名(A列)和ID(B栏)Sheet的工作表 然后,从那里,我可以添加更多的员工姓名和ID。此外,当我单击Login时,它将在C列中显示当前时间,然后它还将显示它们的超时。这是我的主要表单Main Form

非常感谢你。

1 个答案:

答案 0 :(得分:0)

不是100%肯定我明白,但这是我的回答:

以下是从工作表更新字段的方法:

Private Sub txtEmpID_Change()
Dim mySheet As Worksheet
Dim myRange As Range

Set mySheet = Sheets("Emp_ID")
Set myRange = mySheet.Range("B:B").Find(txtEmpID.Value, , , xlWhole)

If Not myRange Is Nothing Then
txtName.Value = myRange.Offset(0, -1)
Else
txtName.Value = "Match not found"
End If

End Sub

将其设置为每当有更新时发生。

至于记录登录时间:myRange.offset(0,1) = Format(Now,"hh:mm:ss")

当有人登录时,您如何知道/显示退出时间?