我试图创建一个多用户登录。我有一个专门用于用户名和密码的单元格的欢迎表,以及一个包含用户名和密码组合的表单。登录多个用户
我得到一个错误If wk.Range("B3").Value = ws.Range(i, "A").Value Then
它说“对象定义”的错误。
我认为它是有道理的,只是试图检查单元格中的字符串是否通过循环匹配用户表中的用户名/密码。 我不确定是否正确。然后根据您是否以操作员或其他用户身份登录,它会影响您看到的表单。
Public CurrentUser As String, CurrentRole As String, LoginUserName As String, LoginPassword As String
Public LoginStatus As Boolean
Sub Login()
'Worksheets("Users").Activate
Dim numberOfUsers, i As Integer
Dim ws, wk As Worksheet
Set ws = ThisWorkbook.Worksheets("Users")
Set wk = ThisWorkbook.Worksheets("Welcome")
numberOfUsers = ws.Range("Users").Rows.Count
LoginStatus = False
For i = 1 To numberOfUsers
If wk.Range("B3").Value = ws.Range(i, "A").Value Then
If wk.Range("B4").Value = ws.Range(i, "B").Value Then
CurrentUser = wk.Range("B3").Value
LoginStatus = True
Else
LoginStatus = False
MsgBox ("Wrong Login Data")
End If
Else
LoginStatus = False
MsgBox ("Wrong Login Data")
Next i`
Select Case CurrentUser
Case "Operator"
Worksheets("Received_Calls").Visible = True
Worksheets("Welcome").Visible = False
Worksheets("Users").Visible = False
Worksheets("Reported_actions").Visible = False
Worksheets("Parameters").Visible = False
Worksheets("Distances").Visible = False
Worksheets("NewCalls").Visible = False
Worksheets("NewActions").Visible = False
Case Else
Worksheets("Received_Calls").Visible = False
Worksheets("Welcome").Visible = False
Worksheets("Users").Visible = False
Worksheets("Reported_actions").Visible = True
Worksheets("Parameters").Visible = False
Worksheets("Distances").Visible = False
Worksheets("NewCalls").Visible = False
Worksheets("NewActions").Visible = False
'need to filter
End Select
End Sub
你不想看表到工作表,而不是工作簿到工作表?看来你已经有点错字:。wk.Range( “B3”)值= ws.Range(I, “A”)的价值应该是ws.Range( “B3”)值= ws.Range(我,“A”)。价值 – sous2817
你也可以避开环路通过在用户工作表的列C串联您的用户名和密码一起使用匹配函数... – sous2817
souldn't'ws.Range(I,“A” ).Value'是'ws.Range(“A”&i).Value'或'ws.Cells(i,1).Value' –