使用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
非常感谢你。
答案 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")
当有人登录时,您如何知道/显示退出时间?